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
This commit is contained in:
parent
a17337ef0f
commit
4a0f295a53
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2e13551ce0996963506f0bdde5e01c3b8aa0622849a272ff12877cd595baeb6e
|
|
||||||
size 12133872
|
|
3
evolution-3.21.91.tar.xz
Normal file
3
evolution-3.21.91.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5388df01942e0ca0493a0f59335433277b83fb5ff314fcc9e0d6134b03306a2f
|
||||||
|
size 12255552
|
649
evolution-gnome-autoar.patch
Normal file
649
evolution-gnome-autoar.patch
Normal file
@ -0,0 +1,649 @@
|
|||||||
|
From b5681c51321045e0a509e5b656301e1032d8c4aa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Razvan Chitu <razvan.ch95@gmail.com>
|
||||||
|
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</_summary>
|
||||||
|
<_description>Initial folder for GtkFileChooser dialogs.</_description>
|
||||||
|
</key>
|
||||||
|
+ <key name="autoar-format" type="s">
|
||||||
|
+ <default>''</default>
|
||||||
|
+ <_summary>Compression format used by autoar</_summary>
|
||||||
|
+ <_description>Compression format used when compressing attached directories with autoar.</_description>
|
||||||
|
+ </key>
|
||||||
|
+ <key name="autoar-filter" type="s">
|
||||||
|
+ <default>''</default>
|
||||||
|
+ <_summary>Compression filter used by autoar</_summary>
|
||||||
|
+ <_description>Compression filter used when compressing attached directories with autoar.</_description>
|
||||||
|
+ </key>
|
||||||
|
<key name="start-offline" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<_summary>Start in offline mode</_summary>
|
||||||
|
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 <glib/gi18n.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_AUTOAR
|
||||||
|
-#include <gnome-autoar/autoar.h>
|
||||||
|
+#include <gnome-autoar/gnome-autoar.h>
|
||||||
|
#include <gnome-autoar/autoar-gtk.h>
|
||||||
|
#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 <glib/gstdio.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_AUTOAR
|
||||||
|
-#include <gnome-autoar/autoar.h>
|
||||||
|
-#include <gnome-autoar/autoar-gtk.h>
|
||||||
|
+#include <gnome-autoar/gnome-autoar.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <libedataserver/libedataserver.h>
|
||||||
|
@@ -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
|
||||||
|
|
304
evolution-webkit2gtk3-adaptation.patch
Normal file
304
evolution-webkit2gtk3-adaptation.patch
Normal file
@ -0,0 +1,304 @@
|
|||||||
|
From 7c8ee5067ce58911e68586a0887b2e57abc5c9c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Popela <tpopela@redhat.com>
|
||||||
|
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 <webkitdom/WebKitDOMDOMSelection.h>
|
||||||
|
#include <webkitdom/WebKitDOMDOMWindowUnstable.h>
|
||||||
|
-#include <webkitdom/WebKitDOMHTMLElementUnstable.h>
|
||||||
|
+#include <webkitdom/WebKitDOMElementUnstable.h>
|
||||||
|
#undef WEBKIT_DOM_USE_UNSTABLE_API
|
||||||
|
|
||||||
|
#include <camel/camel.h>
|
||||||
|
@@ -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 <webkitdom/WebKitDOMDOMSelection.h>
|
||||||
|
#include <webkitdom/WebKitDOMDOMWindowUnstable.h>
|
||||||
|
#include <webkitdom/WebKitDOMHTMLElementUnstable.h>
|
||||||
|
+#include <webkitdom/WebKitDOMElementUnstable.h>
|
||||||
|
#include <webkitdom/WebKitDOMRangeUnstable.h>
|
||||||
|
#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 <tpopela@redhat.com>
|
||||||
|
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
|
||||||
|
|
||||||
|
|
@ -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
|
Mon Aug 8 09:53:33 UTC 2016 - zaitor@opensuse.org
|
||||||
|
|
||||||
|
@ -19,12 +19,12 @@
|
|||||||
# wait for port of gtkimageview to gtk3
|
# wait for port of gtkimageview to gtk3
|
||||||
%define use_gtkimageview 0
|
%define use_gtkimageview 0
|
||||||
|
|
||||||
%define need_autogen 0
|
%define need_autogen 1
|
||||||
|
|
||||||
Name: evolution
|
Name: evolution
|
||||||
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
||||||
%define evolution_base_version 3.20
|
%define evolution_base_version 3.22
|
||||||
Version: 3.20.5
|
Version: 3.21.91
|
||||||
Release: 0
|
Release: 0
|
||||||
# _version needs to be %{version} stripped to major.minor.micro only...
|
# _version needs to be %{version} stripped to major.minor.micro only...
|
||||||
%define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
|
%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
|
Group: Productivity/Networking/Email/Clients
|
||||||
# NOTE: Some files are currently GPL-2.0 but pending relicensing, see bnc#749859
|
# NOTE: Some files are currently GPL-2.0 but pending relicensing, see bnc#749859
|
||||||
Url: http://wiki.gnome.org/Apps/Evolution/
|
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
|
# The icon we rely on is from adwaita-icon-theme
|
||||||
BuildRequires: adwaita-icon-theme
|
BuildRequires: adwaita-icon-theme
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
@ -46,13 +50,16 @@ BuildRequires: openldap2-devel
|
|||||||
BuildRequires: gnome-common
|
BuildRequires: gnome-common
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: gtk-doc
|
BuildRequires: gtk-doc
|
||||||
|
BuildRequires: highlight
|
||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
# don't you ever enable this! It's experimental and insecure (bnc#609013)
|
# don't you ever enable this! It's experimental and insecure (bnc#609013)
|
||||||
#BuildRequires: libytnef-devel
|
#BuildRequires: libytnef-devel
|
||||||
BuildRequires: psmisc
|
BuildRequires: psmisc
|
||||||
BuildRequires: spamassassin
|
BuildRequires: spamassassin
|
||||||
BuildRequires: sqlite3-devel
|
BuildRequires: sqlite3-devel
|
||||||
|
%if !0%{?is_opensuse}
|
||||||
BuildRequires: translation-update-upstream
|
BuildRequires: translation-update-upstream
|
||||||
|
%endif
|
||||||
BuildRequires: update-desktop-files
|
BuildRequires: update-desktop-files
|
||||||
BuildRequires: yelp-tools
|
BuildRequires: yelp-tools
|
||||||
BuildRequires: pkgconfig(atk)
|
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(geocode-glib-1.0) >= 3.10
|
||||||
BuildRequires: pkgconfig(gio-2.0) >= 2.40.0
|
BuildRequires: pkgconfig(gio-2.0) >= 2.40.0
|
||||||
BuildRequires: pkgconfig(gladeui-2.0) >= 3.10.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(gnome-desktop-3.0) >= 2.91.3
|
||||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.8.0
|
BuildRequires: pkgconfig(gtk+-3.0) >= 3.8.0
|
||||||
BuildRequires: pkgconfig(gtkspell3-3.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}
|
%if %{use_gtkimageview}
|
||||||
BuildRequires: pkgconfig(gtkimageview-3.0)
|
BuildRequires: pkgconfig(gtkimageview-3.0)
|
||||||
%endif
|
%endif
|
||||||
@ -160,7 +168,11 @@ to develop applications that require these.
|
|||||||
%lang_package
|
%lang_package
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%if !0%{?is_opensuse}
|
||||||
translation-update-upstream
|
translation-update-upstream
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{need_autogen}
|
%if %{need_autogen}
|
||||||
@ -175,13 +187,11 @@ NOCONFIGURE=1 gnome-autogen.sh
|
|||||||
--disable-image-inline \
|
--disable-image-inline \
|
||||||
%endif
|
%endif
|
||||||
--disable-static \
|
--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.
|
# Processing the files in help uses _lots_ of memory, so running that part in parallel is bad.
|
||||||
pushd help
|
pushd help
|
||||||
make
|
make
|
||||||
popd
|
popd
|
||||||
make %{?_smp_flags} V=1
|
make %{?_smp_flags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%{makeinstall}
|
%{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-prefer-plain.so
|
||||||
%{_libdir}/evolution/modules/module-settings.so
|
%{_libdir}/evolution/modules/module-settings.so
|
||||||
%{_libdir}/evolution/modules/module-startup-wizard.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/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
|
%{_datadir}/glib-2.0/schemas/org.gnome.evolution.addressbook.gschema.xml
|
||||||
%{_libdir}/evolution/plugins/*-email-custom-header.*
|
%{_libdir}/evolution/plugins/*-email-custom-header.*
|
||||||
%{_datadir}/glib-2.0/schemas/org.gnome.evolution.plugin.email-custom-header.gschema.xml
|
%{_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/*-save-calendar.*
|
||||||
%{_libdir}/evolution/plugins/*-templates.*
|
%{_libdir}/evolution/plugins/*-templates.*
|
||||||
%{_datadir}/glib-2.0/schemas/org.gnome.evolution.plugin.templates.gschema.xml
|
%{_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
|
%dir %{_libexecdir}/evolution
|
||||||
%{_libexecdir}/evolution/csv2vcard
|
|
||||||
%{_libexecdir}/evolution/evolution-*
|
%{_libexecdir}/evolution/evolution-*
|
||||||
%{_libexecdir}/evolution/killev
|
%{_libexecdir}/evolution/killev
|
||||||
%{_sysconfdir}/xdg/autostart/evolution-alarm-notify.desktop
|
%{_sysconfdir}/xdg/autostart/evolution-alarm-notify.desktop
|
||||||
|
Loading…
Reference in New Issue
Block a user