From 4a0f295a53ad9a5fb4bb1ca17b554b8d1c9d9a3da38e81a19df5597ba38995ae Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 8 Sep 2016 21:24:44 +0000 Subject: [PATCH] Accepting request 425136 from GNOME:Next Scripted push OBS-URL: https://build.opensuse.org/request/show/425136 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/evolution?expand=0&rev=310 --- evolution-3.20.5.tar.xz | 3 - evolution-3.21.91.tar.xz | 3 + evolution-gnome-autoar.patch | 649 +++++++++++++++++++++++++ evolution-webkit2gtk3-adaptation.patch | 304 ++++++++++++ evolution.changes | 255 ++++++++++ evolution.spec | 38 +- 6 files changed, 1238 insertions(+), 14 deletions(-) delete mode 100644 evolution-3.20.5.tar.xz create mode 100644 evolution-3.21.91.tar.xz create mode 100644 evolution-gnome-autoar.patch create mode 100644 evolution-webkit2gtk3-adaptation.patch diff --git a/evolution-3.20.5.tar.xz b/evolution-3.20.5.tar.xz deleted file mode 100644 index e2c9971..0000000 --- a/evolution-3.20.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e13551ce0996963506f0bdde5e01c3b8aa0622849a272ff12877cd595baeb6e -size 12133872 diff --git a/evolution-3.21.91.tar.xz b/evolution-3.21.91.tar.xz new file mode 100644 index 0000000..43f09ae --- /dev/null +++ b/evolution-3.21.91.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5388df01942e0ca0493a0f59335433277b83fb5ff314fcc9e0d6134b03306a2f +size 12255552 diff --git a/evolution-gnome-autoar.patch b/evolution-gnome-autoar.patch new file mode 100644 index 0000000..e882d39 --- /dev/null +++ b/evolution-gnome-autoar.patch @@ -0,0 +1,649 @@ +From b5681c51321045e0a509e5b656301e1032d8c4aa Mon Sep 17 00:00:00 2001 +From: Razvan Chitu +Date: Fri, 26 Aug 2016 14:55:12 +0300 +Subject: Fix archives support in attachments + +The API of gnome-autoar was recently modified so compression and extraction +were no longer working. Replace autoar preferences objects with two shell +settings. Save memory file to disk before extracting it. Handle generation of +unique file names internally. + +https://bugzilla.gnome.org/show_bug.cgi?id=770380 +--- + configure.ac | 4 +- + data/org.gnome.evolution.shell.gschema.xml.in | 10 + + e-util/e-attachment-store.c | 78 +++---- + e-util/e-attachment.c | 280 +++++++++++++++++++------- + 4 files changed, 254 insertions(+), 118 deletions(-) + +diff --git a/configure.ac b/configure.ac +index a1ba2c0..a841591 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -368,8 +368,8 @@ AC_ARG_ENABLE([autoar], + if test x"$enable_autoar" = xyes; then + PKG_CHECK_MODULES( + [AUTOAR], +- [gnome-autoar >= gnome_autoar_minimum_version +- gnome-autoar-gtk >= gnome_autoar_minimum_version],, ++ [gnome-autoar-0 >= gnome_autoar_minimum_version ++ gnome-autoar-gtk-0 >= gnome_autoar_minimum_version],, + [AC_MSG_ERROR([ + + gnome-autoar or gnome-autoar-gtk not found +diff --git a/data/org.gnome.evolution.shell.gschema.xml.in b/data/org.gnome.evolution.shell.gschema.xml.in +index 18ece74..02a5a18 100644 +--- a/data/org.gnome.evolution.shell.gschema.xml.in ++++ b/data/org.gnome.evolution.shell.gschema.xml.in +@@ -15,6 +15,16 @@ + <_summary>Initial file chooser folder + <_description>Initial folder for GtkFileChooser dialogs. + ++ ++ '' ++ <_summary>Compression format used by autoar ++ <_description>Compression format used when compressing attached directories with autoar. ++ ++ ++ '' ++ <_summary>Compression filter used by autoar ++ <_description>Compression filter used when compressing attached directories with autoar. ++ + + false + <_summary>Start in offline mode +diff --git a/e-util/e-attachment-store.c b/e-util/e-attachment-store.c +index 85fa19a..05e4809 100644 +--- a/e-util/e-attachment-store.c ++++ b/e-util/e-attachment-store.c +@@ -29,7 +29,7 @@ + #include + + #ifdef HAVE_AUTOAR +-#include ++#include + #include + #endif + +@@ -648,8 +648,10 @@ e_attachment_store_run_load_dialog (EAttachmentStore *store, + + #ifdef HAVE_AUTOAR + GSettings *settings; +- AutoarPref *arpref; +- gint format, filter; ++ char *format_string; ++ char *filter_string; ++ gint format; ++ gint filter; + #endif + + g_return_if_fail (E_IS_ATTACHMENT_STORE (store)); +@@ -699,14 +701,23 @@ e_attachment_store_run_load_dialog (EAttachmentStore *store, + option_format_box = GTK_BOX (option_format_box_widget); + gtk_box_pack_start (extra_box, option_format_box_widget, FALSE, FALSE, 0); + +- settings = e_util_ref_settings (AUTOAR_PREF_DEFAULT_GSCHEMA_ID); +- arpref = autoar_pref_new_with_gsettings (settings); ++ settings = e_util_ref_settings ("org.gnome.evolution.shell"); ++ ++ format_string = g_settings_get_string (settings, "autoar-format"); ++ filter_string = g_settings_get_string (settings, "autoar-filter"); ++ ++ if (!e_enum_from_string (AUTOAR_TYPE_FORMAT, format_string, &format)) { ++ format = AUTOAR_FORMAT_ZIP; ++ } ++ if (!e_enum_from_string (AUTOAR_TYPE_FILTER, filter_string, &filter)) { ++ filter = AUTOAR_FILTER_NONE; ++ } + + option_format_label = gtk_label_new ( + _("Archive selected directories using this format:")); + option_format_combo = autoar_gtk_chooser_simple_new ( +- autoar_pref_get_default_format (arpref), +- autoar_pref_get_default_filter (arpref)); ++ format, ++ filter); + gtk_box_pack_start (option_format_box, option_format_label, FALSE, FALSE, 0); + gtk_box_pack_start (option_format_box, option_format_combo, FALSE, FALSE, 0); + #endif +@@ -729,8 +740,23 @@ e_attachment_store_run_load_dialog (EAttachmentStore *store, + + #ifdef HAVE_AUTOAR + autoar_gtk_chooser_simple_get (option_format_combo, &format, &filter); +- autoar_pref_set_default_format (arpref, format); +- autoar_pref_set_default_filter (arpref, filter); ++ ++ if (!e_enum_to_string (AUTOAR_TYPE_FORMAT, format)) { ++ format = AUTOAR_FORMAT_ZIP; ++ } ++ ++ if (!e_enum_to_string (AUTOAR_TYPE_FORMAT, filter)) { ++ filter = AUTOAR_FILTER_NONE; ++ } ++ ++ g_settings_set_string ( ++ settings, ++ "autoar-format", ++ e_enum_to_string (AUTOAR_TYPE_FORMAT, format)); ++ g_settings_set_string ( ++ settings, ++ "autoar-filter", ++ e_enum_to_string (AUTOAR_TYPE_FILTER, filter)); + #endif + + for (iter = files; iter != NULL; iter = g_slist_next (iter)) { +@@ -742,11 +768,6 @@ e_attachment_store_run_load_dialog (EAttachmentStore *store, + e_attachment_set_disposition (attachment, disposition); + e_attachment_store_add_attachment (store, attachment); + +-#ifdef HAVE_AUTOAR +- g_object_set_data_full (G_OBJECT (attachment), +- "autoar-pref", g_object_ref (arpref), g_object_unref); +-#endif +- + e_attachment_load_async ( + attachment, (GAsyncReadyCallback) + e_attachment_load_handle_error, parent); +@@ -760,7 +781,8 @@ exit: + gtk_widget_destroy (dialog); + #ifdef HAVE_AUTOAR + g_object_unref (settings); +- g_object_unref (arpref); ++ g_free (format_string); ++ g_free (filter_string); + #endif + } + +@@ -848,8 +870,6 @@ e_attachment_store_run_save_dialog (EAttachmentStore *store, + const gchar *name = NULL; + + #ifdef HAVE_AUTOAR +- AutoarPref *arpref; +- GSettings *settings; + gchar *mime_type; + #endif + +@@ -867,15 +887,10 @@ e_attachment_store_run_save_dialog (EAttachmentStore *store, + + #ifdef HAVE_AUTOAR + mime_type = e_attachment_dup_mime_type (attachment); +- settings = e_util_ref_settings (AUTOAR_PREF_DEFAULT_GSCHEMA_ID); +- arpref = autoar_pref_new_with_gsettings (settings); +- if (!autoar_pref_check_file_name (arpref, name) && +- !autoar_pref_check_mime_type_d (arpref, mime_type)) { ++ if (!autoar_check_mime_type_supported (mime_type)) { + gtk_widget_hide (extra_box_widget); + } + +- g_clear_object (&settings); +- g_clear_object (&arpref); + g_free (mime_type); + #endif + +@@ -903,27 +918,16 @@ e_attachment_store_run_save_dialog (EAttachmentStore *store, + e_attachment_set_save_self (attachment_list->data, save_self); + e_attachment_set_save_extracted (attachment_list->data, save_extracted); + } else { +- AutoarPref *arpref; +- GSettings *settings; + GList *iter; + +- settings = e_util_ref_settings (AUTOAR_PREF_DEFAULT_GSCHEMA_ID); +- arpref = autoar_pref_new_with_gsettings (settings); +- + for (iter = attachment_list; iter != NULL; iter = iter->next) { + EAttachment *attachment; +- GFileInfo *file_info; +- const gchar *name; + gchar *mime_type; + + attachment = iter->data; +- file_info = e_attachment_ref_file_info (attachment); +- name = g_file_info_get_display_name (file_info); + mime_type = e_attachment_dup_mime_type (attachment); + +- if ((name != NULL && +- autoar_pref_check_file_name (arpref, name)) || +- autoar_pref_check_mime_type_d (arpref, mime_type)) { ++ if (autoar_check_mime_type_supported (mime_type)) { + e_attachment_set_save_self (attachment, save_self); + e_attachment_set_save_extracted (attachment, save_extracted); + } else { +@@ -931,12 +935,8 @@ e_attachment_store_run_save_dialog (EAttachmentStore *store, + e_attachment_set_save_extracted (attachment, FALSE); + } + +- g_object_unref (file_info); + g_free (mime_type); + } +- +- g_object_unref (settings); +- g_object_unref (arpref); + } + #endif + } else { +diff --git a/e-util/e-attachment.c b/e-util/e-attachment.c +index d451f18..21dec66 100644 +--- a/e-util/e-attachment.c ++++ b/e-util/e-attachment.c +@@ -29,8 +29,7 @@ + #include + + #ifdef HAVE_AUTOAR +-#include +-#include ++#include + #endif + + #include +@@ -2027,7 +2026,7 @@ attachment_load_file_read_cb (GFile *file, + + #ifdef HAVE_AUTOAR + static void +-attachment_load_created_decide_dest_cb (AutoarCreate *arcreate, ++attachment_load_created_decide_dest_cb (AutoarCompressor *compressor, + GFile *destination, + EAttachment *attachment) + { +@@ -2035,23 +2034,23 @@ attachment_load_created_decide_dest_cb (AutoarCreate *arcreate, + } + + static void +-attachment_load_created_cancelled_cb (AutoarCreate *arcreate, ++attachment_load_created_cancelled_cb (AutoarCompressor *compressor, + LoadContext *load_context) + { + attachment_load_check_for_error (load_context, + g_error_new_literal ( + G_IO_ERROR, G_IO_ERROR_CANCELLED, _("Operation was cancelled"))); +- g_object_unref (arcreate); ++ g_object_unref (compressor); + } + + static void +-attachment_load_created_completed_cb (AutoarCreate *arcreate, ++attachment_load_created_completed_cb (AutoarCompressor *compressor, + LoadContext *load_context) + { + EAttachment *attachment; + GFile *file; + +- g_object_unref (arcreate); ++ g_object_unref (compressor); + + /* We have set the file to the created temporary archive, so we can + * query info again and use the regular procedure to load the +@@ -2068,12 +2067,12 @@ attachment_load_created_completed_cb (AutoarCreate *arcreate, + } + + static void +-attachment_load_created_error_cb (AutoarCreate *arcreate, ++attachment_load_created_error_cb (AutoarCompressor *compressor, + GError *error, + LoadContext *load_context) + { + attachment_load_check_for_error (load_context, g_error_copy (error)); +- g_object_unref (arcreate); ++ g_object_unref (compressor); + } + #endif + +@@ -2101,25 +2100,49 @@ attachment_load_query_info_cb (GFile *file, + + #ifdef HAVE_AUTOAR + if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_DIRECTORY) { +- AutoarCreate *arcreate; +- AutoarPref *arpref; /* Do not unref */ ++ AutoarCompressor *compressor; + GFile *temporary; ++ GSettings *settings; ++ GList *files = NULL; ++ char *format_string; ++ char *filter_string; ++ gint format; ++ gint filter; + +- arpref = g_object_get_data (G_OBJECT (attachment), "autoar-pref"); + temporary = attachment_get_temporary (&error); + if (attachment_load_check_for_error (load_context, error)) + return; +- arcreate = autoar_create_new_file (arpref, temporary, file, NULL); +- g_signal_connect (arcreate, "decide-dest", ++ ++ settings = e_util_ref_settings ("org.gnome.evolution.shell"); ++ ++ format_string = g_settings_get_string (settings, "autoar-format"); ++ filter_string = g_settings_get_string (settings, "autoar-filter"); ++ ++ if (!e_enum_from_string (AUTOAR_TYPE_FORMAT, format_string, &format)) { ++ format = AUTOAR_FORMAT_ZIP; ++ } ++ if (!e_enum_from_string (AUTOAR_TYPE_FILTER, filter_string, &filter)) { ++ filter = AUTOAR_FILTER_NONE; ++ } ++ ++ files = g_list_prepend (files, file); ++ ++ compressor = autoar_compressor_new ( ++ files, temporary, format, filter, FALSE); ++ g_signal_connect (compressor, "decide-dest", + G_CALLBACK (attachment_load_created_decide_dest_cb), attachment); +- g_signal_connect (arcreate, "cancelled", ++ g_signal_connect (compressor, "cancelled", + G_CALLBACK (attachment_load_created_cancelled_cb), load_context); +- g_signal_connect (arcreate, "completed", ++ g_signal_connect (compressor, "completed", + G_CALLBACK (attachment_load_created_completed_cb), load_context); +- g_signal_connect (arcreate, "error", ++ g_signal_connect (compressor, "error", + G_CALLBACK (attachment_load_created_error_cb), load_context); +- autoar_create_start_async (arcreate, cancellable); ++ autoar_compressor_start_async (compressor, cancellable); + ++ g_object_unref (settings); ++ g_free (format_string); ++ g_free (filter_string); ++ g_list_free (files); + g_object_unref (temporary); + } else { + #endif +@@ -2752,6 +2775,7 @@ struct _SaveContext { + + GByteArray *input_buffer; + gchar *suggested_destname; ++ GFile *temporary_file; + + guint total_tasks : 2; + guint completed_tasks : 2; +@@ -2815,6 +2839,9 @@ attachment_save_context_free (SaveContext *save_context) + if (save_context->suggested_destname != NULL) + g_free (save_context->suggested_destname); + ++ if (save_context->temporary_file != NULL) ++ g_clear_object (&save_context->temporary_file); ++ + g_mutex_clear (&(save_context->completed_tasks_mutex)); + g_mutex_clear (&(save_context->prepared_tasks_mutex)); + +@@ -2872,6 +2899,33 @@ attachment_save_complete (SaveContext *save_context) { + } + } + ++static gchar * ++get_new_name_with_count (const gchar *initial_name, ++ gint count) ++{ ++ GString *string; ++ const gchar *ext; ++ gsize length; ++ ++ if (count == 0) { ++ return g_strdup (initial_name); ++ } ++ ++ string = g_string_sized_new (strlen (initial_name)); ++ ext = g_utf8_strchr (initial_name, -1, '.'); ++ ++ if (ext != NULL) ++ length = ext - initial_name; ++ else ++ length = strlen (initial_name); ++ ++ g_string_append_len (string, initial_name, length); ++ g_string_append_printf (string, " (%d)", count); ++ g_string_append (string, (ext != NULL) ? ext : ""); ++ ++ return g_string_free (string, FALSE); ++} ++ + static GFile * + attachment_save_new_candidate (SaveContext *save_context) + { +@@ -2890,27 +2944,7 @@ attachment_save_new_candidate (SaveContext *save_context) + /* Translators: Default attachment filename. */ + display_name = _("attachment.dat"); + +- if (save_context->count == 0) +- basename = g_strdup (display_name); +- else { +- GString *string; +- const gchar *ext; +- gsize length; +- +- string = g_string_sized_new (strlen (display_name)); +- ext = g_utf8_strchr (display_name, -1, '.'); +- +- if (ext != NULL) +- length = ext - display_name; +- else +- length = strlen (display_name); +- +- g_string_append_len (string, display_name, length); +- g_string_append_printf (string, " (%d)", save_context->count); +- g_string_append (string, (ext != NULL) ? ext : ""); +- +- basename = g_string_free (string, FALSE); +- } ++ basename = get_new_name_with_count (display_name, save_context->count); + + save_context->count++; + +@@ -3009,43 +3043,151 @@ attachment_save_read_cb (GInputStream *input_stream, + } + + #ifdef HAVE_AUTOAR ++static GFile* ++attachment_save_extracted_decide_destination_cb (AutoarExtractor *extractor, ++ GFile *destination, ++ GList *files, ++ SaveContext *save_context) ++{ ++ gchar *basename; ++ GFile *destination_directory; ++ GFile *new_destination; ++ gint count = 0; ++ ++ basename = g_file_get_basename (destination); ++ destination_directory = g_file_get_parent (destination); ++ ++ new_destination = g_object_ref (destination); ++ ++ while (g_file_query_exists (new_destination, NULL)) { ++ gchar *new_basename; ++ ++ new_basename = get_new_name_with_count (basename, ++count); ++ ++ g_object_unref (new_destination); ++ ++ new_destination = g_file_get_child ( ++ destination_directory, new_basename); ++ ++ g_free (new_basename); ++ } ++ ++ g_object_unref (destination_directory); ++ g_free (basename); ++ ++ return new_destination; ++} ++ + static void +-attachment_save_extracted_progress_cb (AutoarExtract *arextract, ++attachment_save_extracted_progress_cb (AutoarExtractor *extractor, + guint64 completed_size, + guint completed_files, + SaveContext *save_context) + { + attachment_progress_cb ( +- autoar_extract_get_size (arextract), ++ autoar_extractor_get_total_size (extractor), + completed_size, save_context->attachment); + } + + static void +-attachment_save_extracted_cancelled_cb (AutoarExtract *arextract, ++attachment_save_extracted_cancelled_cb (AutoarExtractor *extractor, + SaveContext *save_context) + { + attachment_save_check_for_error (save_context, + g_error_new_literal ( + G_IO_ERROR, G_IO_ERROR_CANCELLED, _("Operation was cancelled"))); +- g_object_unref (arextract); ++ g_object_unref (extractor); + } + + static void +-attachment_save_extracted_completed_cb (AutoarExtract *arextract, ++attachment_save_extracted_completed_cb (AutoarExtractor *extractor, + SaveContext *save_context) + { + attachment_save_complete (save_context); +- g_object_unref (arextract); ++ g_object_unref (extractor); + } + + static void +-attachment_save_extracted_error_cb (AutoarExtract *arextract, ++attachment_save_extracted_error_cb (AutoarExtractor *extractor, + GError *error, + SaveContext *save_context) + { + attachment_save_check_for_error (save_context, g_error_copy (error)); +- g_object_unref (arextract); ++ g_object_unref (extractor); + } ++ ++static void ++attachament_save_write_archive_cb (GOutputStream *output_stream, ++ GAsyncResult *result, ++ SaveContext *save_context) ++{ ++ AutoarExtractor *extractor; ++ GError *error = NULL; ++ gsize bytes_written; ++ ++ g_output_stream_write_all_finish ( ++ output_stream, result, &bytes_written, &error); ++ ++ g_object_unref (output_stream); ++ ++ if (attachment_save_check_for_error (save_context, error)) { ++ return; ++ } ++ ++ extractor = autoar_extractor_new ( ++ save_context->temporary_file, save_context->directory); ++ ++ autoar_extractor_set_delete_after_extraction (extractor, TRUE); ++ ++ g_signal_connect (extractor, "decide-destination", ++ G_CALLBACK (attachment_save_extracted_decide_destination_cb), ++ save_context); ++ g_signal_connect (extractor, "progress", ++ G_CALLBACK (attachment_save_extracted_progress_cb), ++ save_context); ++ g_signal_connect (extractor, "cancelled", ++ G_CALLBACK (attachment_save_extracted_cancelled_cb), ++ save_context); ++ g_signal_connect (extractor, "error", ++ G_CALLBACK (attachment_save_extracted_error_cb), ++ save_context); ++ g_signal_connect (extractor, "completed", ++ G_CALLBACK (attachment_save_extracted_completed_cb), ++ save_context); ++ ++ autoar_extractor_start_async ( ++ extractor, save_context->attachment->priv->cancellable); ++ ++ /* We do not g_object_unref (extractor); here because ++ * autoar_extractor_run_start_async () does not increase the ++ * reference count of extractor. We unref the object in ++ * callbacks instead. */ ++} ++ ++static void ++attachment_save_create_archive_cb (GFile *file, ++ GAsyncResult *result, ++ SaveContext *save_context) ++{ ++ GFileOutputStream *output_stream; ++ GError *error = NULL; ++ ++ output_stream = g_file_create_finish (file, result, &error); ++ ++ if (attachment_save_check_for_error (save_context, error)) { ++ return; ++ } ++ ++ g_output_stream_write_all_async ( ++ G_OUTPUT_STREAM (output_stream), ++ save_context->input_buffer->data, ++ save_context->input_buffer->len, ++ G_PRIORITY_DEFAULT, ++ save_context->attachment->priv->cancellable, ++ (GAsyncReadyCallback) attachament_save_write_archive_cb, ++ save_context); ++} ++ + #endif + + static void +@@ -3097,41 +3239,25 @@ attachment_save_got_output_stream (SaveContext *save_context) + + #ifdef HAVE_AUTOAR + if (attachment->priv->save_extracted) { +- GSettings *settings; +- AutoarPref *arpref; +- AutoarExtract *arextract; ++ GFile *temporary_directory; ++ GError *error = NULL; + +- settings = e_util_ref_settings (AUTOAR_PREF_DEFAULT_GSCHEMA_ID); +- arpref = autoar_pref_new_with_gsettings (settings); +- autoar_pref_set_delete_if_succeed (arpref, FALSE); ++ temporary_directory = attachment_get_temporary (&error); ++ if (attachment_save_check_for_error (save_context, error)) ++ return; + +- arextract = autoar_extract_new_memory_file ( +- buffer->data, buffer->len, +- save_context->suggested_destname, +- save_context->directory, arpref); ++ save_context->temporary_file = g_file_get_child ( ++ temporary_directory, save_context->suggested_destname); + +- g_signal_connect (arextract, "progress", +- G_CALLBACK (attachment_save_extracted_progress_cb), +- save_context); +- g_signal_connect (arextract, "cancelled", +- G_CALLBACK (attachment_save_extracted_cancelled_cb), +- save_context); +- g_signal_connect (arextract, "error", +- G_CALLBACK (attachment_save_extracted_error_cb), +- save_context); +- g_signal_connect (arextract, "completed", +- G_CALLBACK (attachment_save_extracted_completed_cb), ++ g_file_create_async ( ++ save_context->temporary_file, ++ G_FILE_CREATE_NONE, ++ G_PRIORITY_DEFAULT, ++ cancellable, ++ (GAsyncReadyCallback) attachment_save_create_archive_cb, + save_context); + +- autoar_extract_start_async (arextract, cancellable); +- +- g_object_unref (settings); +- g_object_unref (arpref); +- +- /* We do not g_object_unref (arextract); here because +- * autoar_extract_run_start_async () do not increase the +- * reference count of arextract. We unref the object in +- * callbacks instead. */ ++ g_object_unref (temporary_directory); + } + #endif + +-- +cgit v0.12 + diff --git a/evolution-webkit2gtk3-adaptation.patch b/evolution-webkit2gtk3-adaptation.patch new file mode 100644 index 0000000..9257b7f --- /dev/null +++ b/evolution-webkit2gtk3-adaptation.patch @@ -0,0 +1,304 @@ +From 7c8ee5067ce58911e68586a0887b2e57abc5c9c2 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Thu, 1 Sep 2016 17:53:46 +0200 +Subject: Adapt to WebKit Unstable DOM API changes in WebKitGTK+ 2.13.90 + +Also increase the minimal required WebKitGTK+ version. +--- + configure.ac | 2 +- + .../web-extension/e-composer-dom-functions.c | 6 +-- + .../web-extension/e-dialogs-dom-functions.c | 2 +- + .../web-extension/e-editor-dom-functions.c | 45 +++++++++++----------- + 4 files changed, 28 insertions(+), 27 deletions(-) + +diff --git a/modules/webkit-editor/web-extension/e-composer-dom-functions.c b/modules/webkit-editor/web-extension/e-composer-dom-functions.c +index a54b180..221c0af 100644 +--- a/modules/webkit-editor/web-extension/e-composer-dom-functions.c ++++ b/modules/webkit-editor/web-extension/e-composer-dom-functions.c +@@ -25,7 +25,7 @@ + #define WEBKIT_DOM_USE_UNSTABLE_API + #include + #include +-#include ++#include + #undef WEBKIT_DOM_USE_UNSTABLE_API + + #include +@@ -370,8 +370,8 @@ e_composer_dom_insert_signature (EEditorPage *editor_page, + WEBKIT_DOM_NODE (insert_signature_in), node, NULL); + remove_node (WEBKIT_DOM_NODE (converted_signature)); + } else +- webkit_dom_html_element_insert_adjacent_html ( +- WEBKIT_DOM_HTML_ELEMENT (insert_signature_in), ++ webkit_dom_element_insert_adjacent_html ( ++ insert_signature_in, + "beforeend", + signature_text, + NULL); +diff --git a/modules/webkit-editor/web-extension/e-dialogs-dom-functions.c b/modules/webkit-editor/web-extension/e-dialogs-dom-functions.c +index b3ac1bf..d3699a2 100644 +--- a/modules/webkit-editor/web-extension/e-dialogs-dom-functions.c ++++ b/modules/webkit-editor/web-extension/e-dialogs-dom-functions.c +@@ -1087,7 +1087,7 @@ e_dialogs_dom_spell_check_run (EEditorPage *editor_page, + * reached only when we reach the beginning/end of the document */ + if (start && end) + webkit_dom_dom_selection_set_base_and_extent ( +- dom_selection, start, start_offset, end, end_offset, NULL); ++ dom_selection, start, start_offset, end, end_offset); + + g_clear_object (&dom_selection); + +diff --git a/modules/webkit-editor/web-extension/e-editor-dom-functions.c b/modules/webkit-editor/web-extension/e-editor-dom-functions.c +index e778849..7d89495 100644 +--- a/modules/webkit-editor/web-extension/e-editor-dom-functions.c ++++ b/modules/webkit-editor/web-extension/e-editor-dom-functions.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + #undef WEBKIT_DOM_USE_UNSTABLE_API + +@@ -1677,8 +1678,8 @@ e_editor_dom_check_magic_links (EEditorPage *editor_page, + new_href); + + if (appending_to_link) { +- webkit_dom_html_element_insert_adjacent_html ( +- WEBKIT_DOM_HTML_ELEMENT (parent), ++ webkit_dom_element_insert_adjacent_html ( ++ WEBKIT_DOM_ELEMENT (parent), + "beforeend", + text_to_append, + NULL); +@@ -1710,8 +1711,8 @@ e_editor_dom_check_magic_links (EEditorPage *editor_page, + new_href); + + if (appending_to_link) { +- webkit_dom_html_element_insert_adjacent_html ( +- WEBKIT_DOM_HTML_ELEMENT (parent), ++ webkit_dom_element_insert_adjacent_html ( ++ WEBKIT_DOM_ELEMENT (parent), + "beforeend", + text_to_append, + NULL); +@@ -2087,8 +2088,8 @@ emoticon_insert_span (EEmoticon *emoticon, + + if (!e_editor_page_get_unicode_smileys_enabled (editor_page)) { + /* ​ == UNICODE_ZERO_WIDTH_SPACE */ +- webkit_dom_html_element_insert_adjacent_html ( +- WEBKIT_DOM_HTML_ELEMENT (span), "afterend", "​", NULL); ++ webkit_dom_element_insert_adjacent_html ( ++ WEBKIT_DOM_ELEMENT (span), "afterend", "​", NULL); + } + + if (ev) { +@@ -2112,8 +2113,8 @@ emoticon_insert_span (EEmoticon *emoticon, + dom_create_selection_marker (document, FALSE)), + NULL); + } else +- webkit_dom_html_element_insert_adjacent_html ( +- WEBKIT_DOM_HTML_ELEMENT (node), "afterend", "​", NULL); ++ webkit_dom_element_insert_adjacent_html ( ++ WEBKIT_DOM_ELEMENT (node), "afterend", "​", NULL); + ev->data.fragment = g_object_ref (fragment); + } + +@@ -3910,8 +3911,8 @@ e_editor_dom_body_key_up_event_process_return_key (EEditorPage *editor_page) + if (!webkit_dom_node_get_previous_sibling (WEBKIT_DOM_NODE (selection_start_marker)) && + (!webkit_dom_node_get_next_sibling (WEBKIT_DOM_NODE (selection_end_marker)) || + WEBKIT_DOM_IS_HTML_BR_ELEMENT (webkit_dom_node_get_next_sibling (WEBKIT_DOM_NODE (selection_end_marker))))) +- webkit_dom_html_element_insert_adjacent_text ( +- WEBKIT_DOM_HTML_ELEMENT (parent), ++ webkit_dom_element_insert_adjacent_text ( ++ WEBKIT_DOM_ELEMENT (parent), + "afterbegin", + UNICODE_ZERO_WIDTH_SPACE, + NULL); +@@ -5494,14 +5495,14 @@ e_editor_dom_quote_and_insert_text_into_selection (EEditorPage *editor_page, + static void + mark_citation (WebKitDOMElement *citation) + { +- webkit_dom_html_element_insert_adjacent_text ( +- WEBKIT_DOM_HTML_ELEMENT (citation), ++ webkit_dom_element_insert_adjacent_text ( ++ citation, + "beforebegin", + "##CITATION_START##", + NULL); + +- webkit_dom_html_element_insert_adjacent_text ( +- WEBKIT_DOM_HTML_ELEMENT (citation), ++ webkit_dom_element_insert_adjacent_text ( ++ citation, + "afterend", + "##CITATION_END##", + NULL); +@@ -5537,8 +5538,8 @@ create_text_markers_for_selection_in_element (WebKitDOMElement *element) + selection_marker = webkit_dom_element_query_selector ( + element, "#-x-evo-selection-start-marker", NULL); + if (selection_marker) +- webkit_dom_html_element_insert_adjacent_text ( +- WEBKIT_DOM_HTML_ELEMENT (selection_marker), ++ webkit_dom_element_insert_adjacent_text ( ++ selection_marker, + "afterend", + "##SELECTION_START##", + NULL); +@@ -5546,8 +5547,8 @@ create_text_markers_for_selection_in_element (WebKitDOMElement *element) + selection_marker = webkit_dom_element_query_selector ( + element, "#-x-evo-selection-end-marker", NULL); + if (selection_marker) +- webkit_dom_html_element_insert_adjacent_text ( +- WEBKIT_DOM_HTML_ELEMENT (selection_marker), ++ webkit_dom_element_insert_adjacent_text ( ++ selection_marker, + "afterend", + "##SELECTION_END##", + NULL); +@@ -11090,8 +11091,8 @@ e_editor_dom_insert_base64_image (EEditorPage *editor_page, + webkit_dom_node_clone_node_with_error (WEBKIT_DOM_NODE (resizable_wrapper), TRUE, NULL), + NULL); + +- webkit_dom_html_element_insert_adjacent_html ( +- WEBKIT_DOM_HTML_ELEMENT (node), "afterend", "​", NULL); ++ webkit_dom_element_insert_adjacent_html ( ++ WEBKIT_DOM_ELEMENT (node), "afterend", "​", NULL); + ev->data.fragment = g_object_ref (fragment); + + e_editor_dom_selection_get_coordinates (editor_page, +@@ -14617,8 +14618,8 @@ set_font_style (WebKitDOMDocument *document, + text_content = webkit_dom_node_get_text_content (first_child); + + if (g_strcmp0 (text_content, UNICODE_ZERO_WIDTH_SPACE) != 0) +- webkit_dom_html_element_insert_adjacent_text ( +- WEBKIT_DOM_HTML_ELEMENT (parent), ++ webkit_dom_element_insert_adjacent_text ( ++ WEBKIT_DOM_ELEMENT (parent), + "afterend", + UNICODE_ZERO_WIDTH_SPACE, + NULL); +-- +cgit v0.12 + +From 1093ace5577c87e4a5d208aca1c9eb4dbc805b30 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Fri, 2 Sep 2016 12:09:38 +0200 +Subject: Replace usage of deprecated WebKit DOM API functions + +--- + .../web-extension/e-editor-dom-functions.c | 30 ++++++++++------------ + web-extensions/e-dom-utils.c | 4 +-- + 2 files changed, 15 insertions(+), 19 deletions(-) + +diff --git a/modules/webkit-editor/web-extension/e-editor-dom-functions.c b/modules/webkit-editor/web-extension/e-editor-dom-functions.c +index 7d89495..f941eca 100644 +--- a/modules/webkit-editor/web-extension/e-editor-dom-functions.c ++++ b/modules/webkit-editor/web-extension/e-editor-dom-functions.c +@@ -4766,7 +4766,7 @@ dom_quote_plain_text (WebKitDOMDocument *document) + gchar *name, *value; + WebKitDOMNode *node = webkit_dom_named_node_map_item (attributes, ii); + +- name = webkit_dom_node_get_local_name (node); ++ name = webkit_dom_attr_get_name (WEBKIT_DOM_ATTR (node)); + value = webkit_dom_node_get_node_value (node); + + webkit_dom_element_set_attribute ( +@@ -5630,15 +5630,13 @@ clear_attributes (EEditorPage *editor_page) + length = webkit_dom_named_node_map_get_length (attributes); + for (ii = length - 1; ii >= 0; ii--) { + gchar *name; +- WebKitDOMNode *node = webkit_dom_named_node_map_item (attributes, ii); ++ WebKitDOMAttr *attribute = WEBKIT_DOM_ATTR (webkit_dom_named_node_map_item (attributes, ii)); + +- name = webkit_dom_node_get_local_name (node); ++ name = webkit_dom_attr_get_name (attribute); + + if (!g_str_has_prefix (name, "data-") && (g_strcmp0 (name, "spellcheck") != 0)) + webkit_dom_element_remove_attribute_node ( +- WEBKIT_DOM_ELEMENT (body), +- WEBKIT_DOM_ATTR (node), +- NULL); ++ WEBKIT_DOM_ELEMENT (body), attribute, NULL); + + g_free (name); + } +@@ -6590,11 +6588,11 @@ process_indented_element (WebKitDOMElement *element) + gchar *text_content; + gchar *indented_text; + +- text_content = webkit_dom_text_get_whole_text (WEBKIT_DOM_TEXT (child)); ++ text_content = webkit_dom_character_data_get_data (WEBKIT_DOM_CHARACTER_DATA (child)); + indented_text = g_strconcat (spaces, text_content, NULL); + +- webkit_dom_text_replace_whole_text ( +- WEBKIT_DOM_TEXT (child), ++ webkit_dom_character_data_set_data ( ++ WEBKIT_DOM_CHARACTER_DATA (child), + indented_text, + NULL); + +@@ -7135,11 +7133,11 @@ process_node_to_plain_text_changing_composer_mode (EEditorPage *editor_page, + length = webkit_dom_named_node_map_get_length (attributes); + for (ii = 0; ii < length; ii++) { + gchar *name = NULL; +- WebKitDOMNode *attribute; ++ WebKitDOMAttr *attribute; + +- attribute = webkit_dom_named_node_map_item (attributes, ii); ++ attribute = WEBKIT_DOM_ATTR (webkit_dom_named_node_map_item (attributes, ii)); + +- name = webkit_dom_node_get_local_name (attribute); ++ name = webkit_dom_attr_get_name (attribute); + + if (g_strcmp0 (name, "bgcolor") == 0 || + g_strcmp0 (name, "text") == 0 || +@@ -7147,9 +7145,7 @@ process_node_to_plain_text_changing_composer_mode (EEditorPage *editor_page, + g_strcmp0 (name, "link") == 0) { + + webkit_dom_element_remove_attribute_node ( +- WEBKIT_DOM_ELEMENT (source), +- WEBKIT_DOM_ATTR (attribute), +- NULL); ++ WEBKIT_DOM_ELEMENT (source), attribute, NULL); + length--; + } + g_free (name); +@@ -8394,9 +8390,9 @@ change_cid_images_src_to_base64 (EEditorPage *editor_page) + length = webkit_dom_named_node_map_get_length (attributes); + for (ii = 0; ii < length; ii++) { + gchar *name; +- WebKitDOMNode *node = webkit_dom_named_node_map_item (attributes, ii); ++ WebKitDOMAttr *attribute = WEBKIT_DOM_ATTR( webkit_dom_named_node_map_item (attributes, ii)); + +- name = webkit_dom_node_get_local_name (node); ++ name = webkit_dom_attr_get_name (attribute); + + if (g_str_has_prefix (name, "xmlns:")) { + const gchar *ns = name + 6; +diff --git a/web-extensions/e-dom-utils.c b/web-extensions/e-dom-utils.c +index 5322c17..170b975 100644 +--- a/web-extensions/e-dom-utils.c ++++ b/web-extensions/e-dom-utils.c +@@ -969,7 +969,7 @@ e_dom_utils_get_active_element_name (WebKitDOMDocument *document) + element = webkit_dom_document_get_active_element (content_document); + } + +- return webkit_dom_node_get_local_name (WEBKIT_DOM_NODE (element)); ++ return webkit_dom_element_get_local_name (element); + } + + void +@@ -1459,7 +1459,7 @@ element_has_tag (WebKitDOMElement *element, + if (!WEBKIT_DOM_IS_ELEMENT (element)) + return FALSE; + +- element_tag = webkit_dom_node_get_local_name (WEBKIT_DOM_NODE (element)); ++ element_tag = webkit_dom_element_get_tag_name (element); + + if (g_ascii_strcasecmp (element_tag, tag) != 0) { + g_free (element_tag); +-- +cgit v0.12 + + diff --git a/evolution.changes b/evolution.changes index f2593a7..bb90d91 100644 --- a/evolution.changes +++ b/evolution.changes @@ -1,3 +1,258 @@ +------------------------------------------------------------------- +Thu Sep 1 19:01:46 UTC 2016 - zaitor@opensuse.org + +- Add evolution-webkit2gtk3-adaptation.patch: Make evolution work + with new webkit2gtk3-2.13.90, patch from git. +- Add highlight BuildRequires: Build highlight source-code in + mailbody support, we now have the needed package. Following + this: Stop passing --disable-text-highlight to configure. +- Conditionally apply translations-update-upstream BuildRequires + and macro for non-openSUSE only. +- Add pkgconfig(gnome-autoar-gtk-0) BuildRequires: Build archive + support for attachments. Following this: Stop passing + --disable-autoar to configure. +- Add evolution-gnome-autoar.patch: Fix configure to look for the + correct name. Also flip define need_autogen to 1, as the patch + touches the buildsystem (bgo#770380). + +------------------------------------------------------------------- +Mon Aug 29 15:54:33 UTC 2016 - dimstar@opensuse.org + +- Update to version 3.21.91: + + Context menu above EWebView hides on button release. + + Correctly free the WebKit DOM GObject instaces. + + Don't try to convert the 'None' signature. + + Paragraphs with just BR element could not be quoted properly. + + Use a faster way of quoting an element if possible when + converting the content. + + Remove the zero width space characters from the HTML output. + + New line after heading and other elements could be lost. + + Fix various issues with parse_html_into_blocks() - mostly not + processing part of the input. + + Make a magic-spacebar (partly) work again. + + Open link in HTML editor only when Ctrl+left-click above it. + + EEditorUndoRedoManager - Fix some FIXME WK2 comments. + + Redoing the input history item could be wrong. + + Element could be quoted in the HTML mode as in the plain text + mode. + + Redoing of "Pasting a link and pressing the Return key after + it" is wrong. + + Don't try to insert selection marks if they are already + presented. + + Remove an empty blockquote if presented after removing from the + quoted content. + + No need to recognize links in the element where it was already + done (by parse_html_into_blocks()). + + Remove special id used for BLOCKQUOTEs when generating the HTML + version of the content. + + Always use the faster version of quoting when we previously + wrapped the content. + + Properly check if the current node is indeed the HR element + before processing it. + + Correct the indentation. + + Font style cannot be set. + + Cast warning printed when trying to cast non-element node to + element in the get_parent_block_element(). + + Fix various extra new lines errors when processing the content. + + Ensure EMailConfigPage::changed signal is emitted in the + main/UI thread. + + Make ECompEditor an extensible. + + Turning off the font formatting could leave empty elements in + DOM. + + Redoing the input event should remove the BR if it was the only + node there. + + Redoing a font style change will not set the correct values to + the EEditorPage. + + Undoing the style change should act like the separate history + event. + + test-htlm-editor-units - Do not focus window on show. + + Cut/Copy/Paste in EHTMLEditor shows a runtime warning on the + console. + + PRE element could not be wrapped quoted correctly. + + Redoing some events could fail. + + Undoing or redoing the font format changes does not reflect the + changes in the UI. + + Avoid vertical scrolling in the filtering rules editor dialog. + + Some editor unit tests fail after commit d3fc71. + + Add --background option for test-html-editor-units. + + Report errors from D-Bus calls to WebExtension-s. + + Bugs fixed: bgo#769618, bgo#769753, bgo#769912, bgo#770083, + bgo#770086, bgo#770369, bgo#770494. + + Updated translations. + +------------------------------------------------------------------- +Mon Aug 15 17:10:22 UTC 2016 - zaitor@opensuse.org + +- Update to version 3.21.90: + + Correct order of "assign value" and "call function" when saving + to drafts. + + Simplify and fix how the HTML is parsed into composer's DOM + structure. + + Update devel-doc build scripts to work after the WebKit2 port + merge. + + The "headers-collapsed" change not propagated into the + settings. + + Add TestKeyfileSettingsBackend for test-html-editor-units. + + Update homepage GNOME wiki URL to save us a redirect. + + Make translation type value more generic; no need for branch + numbers. + + test-html-editor-units: Increase default command delay to 25ms. + + EHTMLEditorView: + - Redoing unquoting does not work. + - Extra new line could be added to the quoted text when parsing + HTML. + - Replace citation marks to actual citation in one round. + - Remove accidentally committed debug prints. + + EWebKitEditor: Tabulator key does not insert the tabulator, but + changes focus. + + Bugs fixed: bgo#768449, bgo#767283, bgo#769354, bgo#769338, + bgo#769062, bgo#768683, bgo#624604, bgo#769388, bgo#769044, + bgo#769072, bgo#769152, bgo#769288, bgo#751588, bgo#769707, + bgo#769908. + + Updated translations. +- Replace pkgconfig(webkitgtk-3.0) for pkgconfig(webkit2gtk-4.0) + BuildRequires following upstreams port. + +------------------------------------------------------------------- +Mon Aug 8 09:57:33 UTC 2016 - zaitor@opensuse.org + +- Update to version 3.21.4: + + GalA11yETableItem can have stored incorrect row count + sometimes. + + Build developer documentation sections and types on the fly. + + When pressing the Return key to end a list a new empty list is + created. + + Make it easier to change evolution .ui files by the users. + + Busy-loop when printing specifically formatted HTML message. + + Enhance timezone lookup for the event editor. + + [ETimezoneDialog] Show timezones as a tree, not as a flat list. + + EHTMLEditorActions: Disable HTML actions in plain text mode. + + EHTMLEditorSelection: + - List alignment not detected properly. + - Indented block style could not be set properly. + + EHTMLEditorUtils: Correctly remove class when it is surrounded + by spaces. + + EHTMLEditorView: + - Critical warning could be seen in console after pasting the + content. + - Don't leak a WebKitDOMNodeList instance. + - Pasting content into the indented block will not preserve + formatting. + - Don't add a new line for the empty list when generating a + plain text version of the content. + - Don't leak a WebKitODMNodeList instance. + - Always try to process the CID images when loading a content. + - Correct the situations when the 'Lose formatting' dialog is + showed. + - When the content is converted set the editor as changed. + - Plain text version of draft could lose formatting. + - Improve how the content is processed. + - Changing a top signature to another one will place it on + different position. + - Unneeded spacer left when setting a top signature from an + existing one to None. + + Add Language headers to po files. + + Bugs fixed: bgo#767780, bgo#764065, bgo#443716, bgo#768013, + bgo#767990, bgo#754848, bgo#768369, bgo#768496, bgo#438062, + bgo#768438. + + Updated translations. +- Stop passing V=1 to make, debugging is local. + +------------------------------------------------------------------- +Mon Aug 8 09:56:33 UTC 2016 - zaitor@opensuse.org + +- Update to version 3.21.3: + + Avoid NULL dereference in mail-send-recv.c:free_send_data() + function. + + [CamelGpgContext] Provide signer photos when available. + + Use newly introduced ENetworkMonitor and add UI settings for + it. + + Don't create unnecessary wrappers when quoting a text. + + Address some of the clang compiler warnings. + + Crash under e_mail_folder_find_duplicate_messages_sync(). + + Create new events in the selected calendar in the left tree of + calendars. + + EHTMLEditorActions: Paste Quotation action is always active. + + EHTMLEditorSelection: Use a faster way of quoting an element in + the plain text mode. + + EHTMLEditorView: + - Redoing a delete operation in a PRE element could wrap the + content in SPAN element. + - Some empty new lines in a quoted content could be lost. + - Don't modify a variable from arguments. + - Simplify how an element is quoted. + - Opening a draft that was not created in composer should + respect the wrap/don't wrap preference. + + Bugs fixed: bgo#766745, bgo#766682, bgo#766713, bgo#766796, + bgo#767283, bgo#767236, bgo#767334, bgo#767542, bgo#767364, + bgo#651112, bgo#767335. + + Updated translations. + +------------------------------------------------------------------- +Mon Aug 8 09:55:33 UTC 2016 - zaitor@opensuse.org + +- Update to version 3.21.2: + + Avoid minor occasional runtime warning. + + Occasional runtime warning from EaMinicardView about invalid + book client. + + Move the clipboard handling from EMsgComposer to + EHTMLEditorView. + + Recognize special folders for a global mail view also based on + flags. + + Rather hide, than disable, items in Taskpad/Memopad context + menus. + + Correct placement of emoticon and color chooser in composer + under Wayland. + + Enhance delayed message send through Outbox. + + Fix typo in previous commit. + + Add missing closing tag. + + Fix some issues found by Coverity Scan, cppcheck and clang. + + Explicitly center attachment bar expander vertically. + + EHTMLEditor: Only display the text properties dialog when some + text is selected. + + EHTMLEditorActions: 'Select All' action is always disabled. + + EHTMLEditorImageDialog: Border and alignment are not set + properly. + + EHTMLEditorView: + - Restore the selection end mark correctly when processing HTML + to plain text. + - Redoing a citation split removes an extra text. + - Introduce the is-ready signal. + - Background image from page is removed when saving draft. + + EMailSignatureEditor: Undo and redo history is handled by + EHTMLEditorView and not by WebKitWebView. + + EMsgComposer: Move the signature handling to EHTMLEditorView. + + Bugs fixed: bgo#435219, bgo#571723, bgo#681353, bgo#765446, + bgo#765665, bgo#765636, bgo#765857, bgo#765950, bgo#766017, + bgo#766111, bgo#766315, 766540. + + Updated translations. + +------------------------------------------------------------------- +Mon Aug 8 09:54:33 UTC 2016 - zaitor@opensuse.org + +- Update to version 3.21.1: + + Cannot change order list to unordered for the first time. + + Inline images in drafts are not displayed in GMail. + + Change ECalendarView from GtkTable to GtkGrid. + + Hide private members of ECalendar into a private structure. + + Optimize some of the DOM functions related to selection. + + EHTMLEditorSelection: + - Selection could be saved wrong in quoted content. + - Anchors could be wrongly wrapped in quoted content. + - Ask for a parent node of the right node. + + EHTMLEditorView: + - Simplify and improve how the undo/redo of delete operation in + quoted content is performed. + - Deleting a content in a PRE element could wrap the content in + SPAN element. + - Moving a Preformatted block one level up in the quoted + content will change it to Normal. + + EMsgComposer: Move the DOM manipulation to EHTMLEditorView. + + Bugs fixed: bgo#759802, bgo#764977, bgo#765090, bgo#765102, + bgo#765202, bgo#765112. + + Updated translations. +- Bump base version following upstream changes. + ------------------------------------------------------------------- Mon Aug 8 09:53:33 UTC 2016 - zaitor@opensuse.org diff --git a/evolution.spec b/evolution.spec index bce6df8..29af5b0 100644 --- a/evolution.spec +++ b/evolution.spec @@ -19,12 +19,12 @@ # wait for port of gtkimageview to gtk3 %define use_gtkimageview 0 -%define need_autogen 0 +%define need_autogen 1 Name: evolution # This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in. -%define evolution_base_version 3.20 -Version: 3.20.5 +%define evolution_base_version 3.22 +Version: 3.21.91 Release: 0 # _version needs to be %{version} stripped to major.minor.micro only... %define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+') @@ -35,7 +35,11 @@ License: LGPL-2.0 and LGPL-3.0 Group: Productivity/Networking/Email/Clients # NOTE: Some files are currently GPL-2.0 but pending relicensing, see bnc#749859 Url: http://wiki.gnome.org/Apps/Evolution/ -Source0: http://download.gnome.org/sources/evolution/3.20/%{name}-%{version}.tar.xz +Source0: http://download.gnome.org/sources/evolution/3.21/%{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM evolution-webkit2gtk3-adaptation.patch zaitor@opensuse.org -- Make evo work with webkit2gtk3 2.13.90 +Patch0: evolution-webkit2gtk3-adaptation.patch +# PATCH-FIX-UPSTREAM evolution-gnome-autoar.patch bgo#770380 zaitor@opensuse.org -- Make configure look for the new name of gnome-autoar +Patch1: evolution-gnome-autoar.patch # The icon we rely on is from adwaita-icon-theme BuildRequires: adwaita-icon-theme BuildRequires: bison @@ -46,13 +50,16 @@ BuildRequires: openldap2-devel BuildRequires: gnome-common %endif BuildRequires: gtk-doc +BuildRequires: highlight BuildRequires: intltool # don't you ever enable this! It's experimental and insecure (bnc#609013) #BuildRequires: libytnef-devel BuildRequires: psmisc BuildRequires: spamassassin BuildRequires: sqlite3-devel +%if !0%{?is_opensuse} BuildRequires: translation-update-upstream +%endif BuildRequires: update-desktop-files BuildRequires: yelp-tools BuildRequires: pkgconfig(atk) @@ -63,10 +70,11 @@ BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.24.0 BuildRequires: pkgconfig(geocode-glib-1.0) >= 3.10 BuildRequires: pkgconfig(gio-2.0) >= 2.40.0 BuildRequires: pkgconfig(gladeui-2.0) >= 3.10.0 +BuildRequires: pkgconfig(gnome-autoar-gtk-0) >= 0.1.1 BuildRequires: pkgconfig(gnome-desktop-3.0) >= 2.91.3 BuildRequires: pkgconfig(gtk+-3.0) >= 3.8.0 BuildRequires: pkgconfig(gtkspell3-3.0) -BuildRequires: pkgconfig(webkitgtk-3.0) >= 2.0.1 +BuildRequires: pkgconfig(webkit2gtk-4.0) >= 2.13.90 %if %{use_gtkimageview} BuildRequires: pkgconfig(gtkimageview-3.0) %endif @@ -160,7 +168,11 @@ to develop applications that require these. %lang_package %prep %setup -q +%patch0 -p1 +%patch1 -p1 +%if !0%{?is_opensuse} translation-update-upstream +%endif %build %if %{need_autogen} @@ -175,13 +187,11 @@ NOCONFIGURE=1 gnome-autogen.sh --disable-image-inline \ %endif --disable-static \ - --disable-text-highlight \ - --disable-autoar # FIXME: remove when gnome-autoar is packaged # Processing the files in help uses _lots_ of memory, so running that part in parallel is bad. pushd help make popd -make %{?_smp_flags} V=1 +make %{?_smp_flags} %install %{makeinstall} @@ -257,9 +267,10 @@ grep -q "^Categories=.*Office" %{buildroot}%{_datadir}/applications/evolution.de %{_libdir}/evolution/modules/module-prefer-plain.so %{_libdir}/evolution/modules/module-settings.so %{_libdir}/evolution/modules/module-startup-wizard.so -#{_libdir}/evolution/%{evolution_base_version}/modules/module-text-highlight.so +%{_libdir}/evolution/modules/module-text-highlight.so %{_libdir}/evolution/modules/module-vcard-inline.so -%{_libdir}/evolution/modules/*-web-inspector.* +%{_libdir}/evolution/modules/module-webkit-editor.so +%{_libdir}/evolution/modules/module-webkit-inspector.so %{_datadir}/glib-2.0/schemas/org.gnome.evolution.addressbook.gschema.xml %{_libdir}/evolution/plugins/*-email-custom-header.* %{_datadir}/glib-2.0/schemas/org.gnome.evolution.plugin.email-custom-header.gschema.xml @@ -286,8 +297,13 @@ grep -q "^Categories=.*Office" %{buildroot}%{_datadir}/applications/evolution.de %{_libdir}/evolution/plugins/*-save-calendar.* %{_libdir}/evolution/plugins/*-templates.* %{_datadir}/glib-2.0/schemas/org.gnome.evolution.plugin.templates.gschema.xml +%{_libdir}/evolution/web-extensions/libedomutils* +%{_libdir}/evolution/web-extensions/libewebextension.so +%{_libdir}/evolution/web-extensions/libmoduleitipformatterwebextension.so +%dir %{_libdir}/evolution/web-extensions/webkit-editor +%{_libdir}/evolution/web-extensions/webkit-editor/libewebkiteditorwebextension.so +%{_libdir}/evolution/test-gio-modules/libevolutiontestsettings.so %dir %{_libexecdir}/evolution -%{_libexecdir}/evolution/csv2vcard %{_libexecdir}/evolution/evolution-* %{_libexecdir}/evolution/killev %{_sysconfdir}/xdg/autostart/evolution-alarm-notify.desktop