diff --git a/SOURCES/evolution-3.28.5-crash-empty-attendee.patch b/SOURCES/evolution-3.28.5-crash-empty-attendee.patch new file mode 100644 index 0000000..e671c26 --- /dev/null +++ b/SOURCES/evolution-3.28.5-crash-empty-attendee.patch @@ -0,0 +1,57 @@ +diff -up evolution-3.28.5/src/calendar/gui/e-comp-editor.c.crash-empty-attendee evolution-3.28.5/src/calendar/gui/e-comp-editor.c +--- evolution-3.28.5/src/calendar/gui/e-comp-editor.c.crash-empty-attendee 2018-07-30 15:37:05.000000000 +0200 ++++ evolution-3.28.5/src/calendar/gui/e-comp-editor.c 2019-06-28 11:36:27.645365528 +0200 +@@ -2610,6 +2610,7 @@ e_comp_editor_fill_component (ECompEdito + icalcomponent *component) + { + ECompEditorClass *comp_editor_class; ++ GtkWidget *focused_widget; + gboolean is_valid; + + g_return_val_if_fail (E_IS_COMP_EDITOR (comp_editor), FALSE); +@@ -2619,8 +2620,30 @@ e_comp_editor_fill_component (ECompEdito + g_return_val_if_fail (comp_editor_class != NULL, FALSE); + g_return_val_if_fail (comp_editor_class->fill_component != NULL, FALSE); + ++ focused_widget = gtk_window_get_focus (GTK_WINDOW (comp_editor)); ++ if (focused_widget) { ++ GtkWidget *parent, *ce_widget = GTK_WIDGET (comp_editor); ++ ++ /* When a cell-renderer is focused and editing the cell content, ++ then unfocus it may mean to free the currently focused widget, ++ thus get the GtkTreeView in such cases. */ ++ parent = focused_widget; ++ while (parent = gtk_widget_get_parent (parent), parent && parent != ce_widget) { ++ if (GTK_IS_TREE_VIEW (parent)) { ++ focused_widget = parent; ++ break; ++ } ++ } ++ ++ /* Save any pending changes */ ++ gtk_window_set_focus (GTK_WINDOW (comp_editor), NULL); ++ } ++ + is_valid = comp_editor_class->fill_component (comp_editor, component); + ++ if (focused_widget) ++ gtk_window_set_focus (GTK_WINDOW (comp_editor), focused_widget); ++ + if (is_valid && comp_editor->priv->validation_alert) { + e_alert_response (comp_editor->priv->validation_alert, GTK_RESPONSE_CLOSE); + g_clear_object (&comp_editor->priv->validation_alert); +diff -up evolution-3.28.5/src/modules/calendar/e-cal-shell-content.c.crash-empty-attendee evolution-3.28.5/src/modules/calendar/e-cal-shell-content.c +--- evolution-3.28.5/src/modules/calendar/e-cal-shell-content.c.crash-empty-attendee 2018-07-30 15:37:05.000000000 +0200 ++++ evolution-3.28.5/src/modules/calendar/e-cal-shell-content.c 2019-06-28 11:36:27.645365528 +0200 +@@ -847,9 +847,9 @@ cal_shell_content_get_attendee_prop (ica + while (prop != NULL) { + const gchar *attendee; + +- attendee = icalproperty_get_attendee (prop); ++ attendee = itip_strip_mailto (icalproperty_get_attendee (prop)); + +- if (g_str_equal (itip_strip_mailto (attendee), address)) ++ if (attendee && g_ascii_strcasecmp (attendee, address) == 0) + return prop; + + prop = icalcomponent_get_next_property ( diff --git a/SOURCES/evolution-3.28.5-help-contents-link.patch b/SOURCES/evolution-3.28.5-help-contents-link.patch new file mode 100644 index 0000000..ebd43ed --- /dev/null +++ b/SOURCES/evolution-3.28.5-help-contents-link.patch @@ -0,0 +1,36 @@ +From fe293e9f75ef3a7fec90e9b11f9c5935ae98445c Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Mon, 17 Sep 2018 22:46:40 +0200 +Subject: [PATCH] I#129 - Use unversioned URL to help.gnome.org + +Closes https://gitlab.gnome.org/GNOME/evolution/issues/129 +--- + src/e-util/e-misc-utils.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/e-util/e-misc-utils.c b/src/e-util/e-misc-utils.c +index c6f4e105b3..3801337fc2 100644 +--- a/src/e-util/e-misc-utils.c ++++ b/src/e-util/e-misc-utils.c +@@ -319,7 +319,9 @@ e_display_help (GtkWindow *parent, + uri = g_string_new ("help:" PACKAGE); + } else { + uri = g_string_new ("https://help.gnome.org/users/" PACKAGE "/"); +- g_string_append_printf (uri, "%d.%d", EDS_MAJOR_VERSION, EDS_MINOR_VERSION); ++ /* Use '/stable/' until https://bugzilla.gnome.org/show_bug.cgi?id=785522 is fixed */ ++ g_string_append (uri, "stable/"); ++ /* g_string_append_printf (uri, "%d.%d", EDS_MAJOR_VERSION, EDS_MINOR_VERSION); */ + } + + timestamp = gtk_get_current_event_time (); +@@ -327,7 +329,6 @@ e_display_help (GtkWindow *parent, + if (parent != NULL) + screen = gtk_widget_get_screen (GTK_WIDGET (parent)); + +- + if (link_id != NULL) { + g_string_append (uri, "/"); + g_string_append (uri, link_id); +-- +2.21.0 + diff --git a/SOURCES/evolution-3.28.5-intltool-cache.patch b/SOURCES/evolution-3.28.5-intltool-cache.patch new file mode 100644 index 0000000..2476af2 --- /dev/null +++ b/SOURCES/evolution-3.28.5-intltool-cache.patch @@ -0,0 +1,42 @@ +From f315ca6a601e77220323bff4ac7782b54c862a0c Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Tue, 30 Oct 2018 15:50:58 +0100 +Subject: [PATCH] Make sure intltool-merge cache is created only once + +Similar to https://gitlab.gnome.org/GNOME/evolution/issues/196 +when intltool-merge is called in parallel, it could either rewrite +the ongoing attempt to build it or use an incomplete data, which +results in broken output files (.desktop, .metainfo and so on). +This change ensures the intltool-merge cache is created only once +and any other requests which would use it will wait until it's created. +--- + cmake/modules/FindIntltool.cmake | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/cmake/modules/FindIntltool.cmake b/cmake/modules/FindIntltool.cmake +index 2cda2549eb..8e223e9d7f 100644 +--- a/cmake/modules/FindIntltool.cmake ++++ b/cmake/modules/FindIntltool.cmake +@@ -176,9 +176,18 @@ macro(intltool_merge _in_filename _out_filename) + DEPENDS ${_in} + ) + else(_has_no_translations) ++ if(NOT TARGET intltool-merge-cache) ++ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/po/.intltool-merge-cache ++ COMMAND ${INTLTOOL_MERGE} ${_args} --quiet --cache="${CMAKE_BINARY_DIR}/po/.intltool-merge-cache" "${GETTEXT_PO_DIR}" "${_in}" "${_out}" ++ DEPENDS ${_in} ++ ) ++ add_custom_target(intltool-merge-cache ALL ++ DEPENDS ${CMAKE_BINARY_DIR}/po/.intltool-merge-cache) ++ endif(NOT TARGET intltool-merge-cache) ++ + add_custom_command(OUTPUT ${_out} + COMMAND ${INTLTOOL_MERGE} ${_args} --quiet --cache="${CMAKE_BINARY_DIR}/po/.intltool-merge-cache" "${GETTEXT_PO_DIR}" "${_in}" "${_out}" +- DEPENDS ${_in} ++ DEPENDS ${_in} intltool-merge-cache + ) + endif(_has_no_translations) + endmacro(intltool_merge) +-- +2.18.1 + diff --git a/SPECS/evolution.spec b/SPECS/evolution.spec index da6dcc6..821d336 100644 --- a/SPECS/evolution.spec +++ b/SPECS/evolution.spec @@ -31,7 +31,7 @@ Name: evolution Version: 3.28.5 -Release: 6%{?dist} +Release: 9%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -63,6 +63,15 @@ Patch03: evolution-3.28.5-extra-new-line-before-url.patch # RH bug #1634665 Patch04: evolution-3.28.5-deselect-task-memo-list.patch +# RH bug #1724232 +Patch05: evolution-3.28.5-help-contents-link.patch + +# RH bug #1724659 +Patch06: evolution-3.28.5-intltool-cache.patch + +# RH bug #1724984 +Patch07: evolution-3.28.5-crash-empty-attendee.patch + ## Dependencies ### Requires: %{_bindir}/killall @@ -237,6 +246,9 @@ the functionality of the installed %{name} package. %patch02 -p1 -b .mangled-deeper-html-quotes %patch03 -p1 -b .extra-new-line-before-url %patch04 -p1 -b .deselect-task-memo-list +%patch05 -p1 -b .help-contents-link +%patch06 -p1 -b .intltool-cache +%patch07 -p1 -b .crash-empty-attendee # Remove the welcome email from Novell for inbox in src/mail/default/*/Inbox; do @@ -535,6 +547,15 @@ grep -v "/usr/share/locale" evolution.lang > help.lang %endif %changelog +* Fri Jun 28 2019 Milan Crha - 3.28.5-9 +- Add patch for RH bug #1724984 ([ECompEditor] Ensure attendee changes stored before save) + +* Thu Jun 27 2019 Milan Crha - 3.28.5-8 +- Add patch for RH bug #1724659 (Make sure intltool-merge cache is created only once) + +* Thu Jun 27 2019 Milan Crha - 3.28.5-7 +- Add patch for RH bug #1724232 (Help Contents (F1) has a bad link to GNOME site) + * Fri Oct 26 2018 Milan Crha - 3.28.5-6 - Add BuildRequires/Requires for 'killall' binary (RH bug #1643481)