commit 2732973d65d562a3255d71167a55caecc077ebee Author: CentOS Sources Date: Tue May 7 08:43:51 2019 -0400 import evolution-ews-3.28.5-3.el8 diff --git a/.evolution-ews.metadata b/.evolution-ews.metadata new file mode 100644 index 0000000..a1d024b --- /dev/null +++ b/.evolution-ews.metadata @@ -0,0 +1 @@ +22caa0a3798f51757f88fd19c9ca74284f62b0d3 SOURCES/evolution-ews-3.28.5.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..87291d0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/evolution-ews-3.28.5.tar.xz diff --git a/SOURCES/evolution-ews-3.28.5-contact-country-forgotten.patch b/SOURCES/evolution-ews-3.28.5-contact-country-forgotten.patch new file mode 100644 index 0000000..16b365a --- /dev/null +++ b/SOURCES/evolution-ews-3.28.5-contact-country-forgotten.patch @@ -0,0 +1,32 @@ +diff -up evolution-ews-3.28.5/src/addressbook/e-book-backend-ews.c.contact-country-forgotten evolution-ews-3.28.5/src/addressbook/e-book-backend-ews.c +--- evolution-ews-3.28.5/src/addressbook/e-book-backend-ews.c.contact-country-forgotten 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/addressbook/e-book-backend-ews.c 2018-09-27 18:31:47.485039155 +0200 +@@ -700,6 +700,7 @@ add_physical_address (ESoapMessage *msg, + e_ews_message_write_string_parameter (msg, "Street", NULL, contact_addr->street); + e_ews_message_write_string_parameter (msg, "City", NULL, contact_addr->locality); + e_ews_message_write_string_parameter (msg, "State", NULL, contact_addr->region); ++ e_ews_message_write_string_parameter (msg, "CountryOrRegion", NULL, contact_addr->country); + e_ews_message_write_string_parameter (msg, "PostalCode", NULL, contact_addr->code); + + e_soap_message_end_element (msg); +@@ -1191,6 +1192,8 @@ compare_address (ESoapMessage *message, + convert_indexed_contact_property_to_updatexml_physical_address (message, "PhysicalAddress", "City", new_address->locality, "contacts", "PhysicalAddresses", key); + if (set || g_strcmp0 (new_address->region, old_address->region) != 0) + convert_indexed_contact_property_to_updatexml_physical_address (message, "PhysicalAddress", "State", new_address->region, "contacts", "PhysicalAddresses", key); ++ if (set || g_strcmp0 (new_address->country, old_address->country) != 0) ++ convert_indexed_contact_property_to_updatexml_physical_address (message, "PhysicalAddress", "CountryOrRegion", new_address->country, "contacts", "PhysicalAddresses", key); + if (set || g_strcmp0 (new_address->code, old_address->code) != 0) + convert_indexed_contact_property_to_updatexml_physical_address (message, "PhysicalAddress", "PostalCode", new_address->code, "contacts", "PhysicalAddresses", key); + +diff -up evolution-ews-3.28.5/src/server/e-ews-item.c.contact-country-forgotten evolution-ews-3.28.5/src/server/e-ews-item.c +--- evolution-ews-3.28.5/src/server/e-ews-item.c.contact-country-forgotten 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/server/e-ews-item.c 2018-09-27 18:31:47.485039155 +0200 +@@ -686,7 +686,7 @@ ews_get_physical_address (ESoapParameter + if (subparam) + address->state = e_soap_parameter_get_string_value (subparam); + +- subparam = e_soap_parameter_get_first_child_by_name (param, "Country"); ++ subparam = e_soap_parameter_get_first_child_by_name (param, "CountryOrRegion"); + if (subparam) + address->country = e_soap_parameter_get_string_value (subparam); + diff --git a/SOURCES/evolution-ews-3.28.5-disable-reminder-types.patch b/SOURCES/evolution-ews-3.28.5-disable-reminder-types.patch new file mode 100644 index 0000000..31d269d --- /dev/null +++ b/SOURCES/evolution-ews-3.28.5-disable-reminder-types.patch @@ -0,0 +1,12 @@ +diff -up evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c.disable-reminder-types evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c +--- evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c.disable-reminder-types 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c 2018-09-27 18:30:08.889040518 +0200 +@@ -3675,6 +3675,8 @@ ecb_ews_get_backend_property (ECalBacken + return g_strjoin ( + ",", + CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS, ++ CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS, ++ CAL_STATIC_CAPABILITY_NO_PROCEDURE_ALARMS, + CAL_STATIC_CAPABILITY_ONE_ALARM_ONLY, + CAL_STATIC_CAPABILITY_REMOVE_ALARMS, + CAL_STATIC_CAPABILITY_NO_THISANDPRIOR, diff --git a/SOURCES/evolution-ews-3.28.5-double-collection-backend-populate.patch b/SOURCES/evolution-ews-3.28.5-double-collection-backend-populate.patch new file mode 100644 index 0000000..c9e4cdb --- /dev/null +++ b/SOURCES/evolution-ews-3.28.5-double-collection-backend-populate.patch @@ -0,0 +1,66 @@ +From f50530ad101b47d461a345ff2b8b295b86c05d3a Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Thu, 27 Sep 2018 10:51:05 +0200 +Subject: Collection backend schedules two 'populate' requests after going + online + +ECollectionBackend base class makes sure the 'populate' method is called +after the backend itself goes online, thus there is no need to schedule +it in the descendant again. + +Related to https://gitlab.gnome.org/GNOME/evolution-data-server/issues/36 + +diff --git a/src/collection/e-ews-backend.c b/src/collection/e-ews-backend.c +index 651694b7..d9a973af 100644 +--- a/src/collection/e-ews-backend.c ++++ b/src/collection/e-ews-backend.c +@@ -48,7 +48,7 @@ struct _EEwsBackendPrivate { + + gboolean need_update_folders; + +- gulong notify_online_id; ++ gulong source_changed_id; + }; + + struct _SyncFoldersClosure { +@@ -647,15 +647,21 @@ static void + ews_backend_dispose (GObject *object) + { + EEwsBackendPrivate *priv; ++ ESource *source; + + priv = E_EWS_BACKEND_GET_PRIVATE (object); + ++ source = e_backend_get_source (E_BACKEND (object)); ++ if (source && priv->source_changed_id) { ++ g_signal_handler_disconnect (source, priv->source_changed_id); ++ priv->source_changed_id = 0; ++ } ++ + g_hash_table_remove_all (priv->folders); + +- if (priv->connection != NULL) { +- g_object_unref (priv->connection); +- priv->connection = NULL; +- } ++ g_mutex_lock (&priv->connection_lock); ++ g_clear_object (&priv->connection); ++ g_mutex_unlock (&priv->connection_lock); + + /* Chain up to parent's dispose() method. */ + G_OBJECT_CLASS (e_ews_backend_parent_class)->dispose (object); +@@ -770,12 +776,8 @@ ews_backend_populate (ECollectionBackend *backend) + + ews_backend->priv->need_update_folders = TRUE; + +- if (!ews_backend->priv->notify_online_id) { +- ews_backend->priv->notify_online_id = g_signal_connect ( +- backend, "notify::online", +- G_CALLBACK (ews_backend_populate), NULL); +- +- g_signal_connect ( ++ if (!ews_backend->priv->source_changed_id) { ++ ews_backend->priv->source_changed_id = g_signal_connect ( + source, "changed", + G_CALLBACK (ews_backend_source_changed_cb), ews_backend); + } diff --git a/SOURCES/evolution-ews-3.28.5-import-event-timezone.patch b/SOURCES/evolution-ews-3.28.5-import-event-timezone.patch new file mode 100644 index 0000000..5d30d3f --- /dev/null +++ b/SOURCES/evolution-ews-3.28.5-import-event-timezone.patch @@ -0,0 +1,259 @@ +diff -up evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c.import-event-timezone evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c +--- evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c.import-event-timezone 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c 2018-09-04 11:14:27.815647542 +0200 +@@ -579,7 +579,7 @@ ecb_ews_item_to_component_sync (ECalBack + if (start_zone != NULL) { + icalcomp = icalcomponent_get_first_component (vcomp, kind); + +- dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, vcomp, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + dt = icaltime_convert_to_zone (dt, start_zone); + icalcomponent_set_dtstart (icalcomp, dt); + +@@ -587,7 +587,7 @@ ecb_ews_item_to_component_sync (ECalBack + e_timezone_cache_add_timezone (timezone_cache, start_zone); + + if (end_zone != NULL) { +- dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); ++ dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, vcomp, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); + dt = icaltime_convert_to_zone (dt, end_zone); + icalcomponent_set_dtend (icalcomp, dt); + +@@ -655,11 +655,11 @@ ecb_ews_item_to_component_sync (ECalBack + zone = icaltimezone_get_builtin_timezone (tzid); + + if (zone != NULL) { +- dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, vcomp, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + dt = icaltime_convert_to_zone (dt, zone); + icalcomponent_set_dtstart (icalcomp, dt); + +- dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); ++ dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, vcomp, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); + dt = icaltime_convert_to_zone (dt, zone); + icalcomponent_set_dtend (icalcomp, dt); + } +@@ -2930,7 +2930,7 @@ ecb_ews_send_cancellation_email_sync (EC + icalcomponent_add_property (vevent, icalproperty_new_status (ICAL_STATUS_CANCELLED)); + prop = icalcomponent_get_first_property (vevent, ICAL_METHOD_PROPERTY); + if (prop != NULL) icalcomponent_remove_property (vevent, prop); +- dt = e_cal_backend_ews_get_datetime_with_zone (E_TIMEZONE_CACHE (cbews), vevent, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dt = e_cal_backend_ews_get_datetime_with_zone (E_TIMEZONE_CACHE (cbews), NULL, vevent, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + icaltz = (icaltimezone *) + (dt.zone ? dt.zone : ecb_ews_get_timezone_from_ical_component (cbews, vevent)); + vtz = icaltimezone_get_component (icaltz); +@@ -2973,6 +2973,7 @@ ecb_ews_send_cancellation_email_sync (EC + + static void + ecb_ews_receive_objects_no_exchange_mail (ECalBackendEws *cbews, ++ icalcomponent *vcalendar, + icalcomponent *subcomp, + GSList **ids, + GCancellable *cancellable, +@@ -2984,6 +2985,7 @@ ecb_ews_receive_objects_no_exchange_mail + convert_data.connection = cbews->priv->cnc; + convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews); + convert_data.icalcomp = subcomp; ++ convert_data.vcalendar = vcalendar; + convert_data.default_zone = icaltimezone_get_utc_timezone (); + + fid = e_ews_folder_id_new (cbews->priv->folder_id, NULL, FALSE); +@@ -3228,6 +3230,7 @@ ecb_ews_get_item_accept_id (ECalComponen + + static gboolean + ecb_ews_do_method_request_publish_reply (ECalBackendEws *cbews, ++ icalcomponent *vcalendar, + ECalComponent *comp, + icalcomponent *subcomp, + const gchar *response_type, +@@ -3258,7 +3261,7 @@ ecb_ews_do_method_request_publish_reply + while (pass < 2) { + /*in case we do not have item id we will create item with mime content only*/ + if (!item_id || (response_type && g_ascii_strcasecmp (response_type, "NEEDS-ACTION") == 0)) { +- ecb_ews_receive_objects_no_exchange_mail (cbews, subcomp, &ids, cancellable, &local_error); ++ ecb_ews_receive_objects_no_exchange_mail (cbews, vcalendar, subcomp, &ids, cancellable, &local_error); + } else { + EwsCalendarConvertData convert_data = { 0 }; + +@@ -3367,6 +3370,7 @@ ecb_ews_do_method_request_publish_reply + } + + convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews); ++ convert_data.vcalendar = vcalendar; + + e_ews_connection_update_items_sync ( + cbews->priv->cnc, +@@ -3452,7 +3456,7 @@ ecb_ews_receive_objects_sync (ECalBacken + + comp = e_cal_component_new_from_icalcomponent (icalcomponent_new_clone (subcomp)); + +- success = ecb_ews_do_method_request_publish_reply (cbews, comp, subcomp, response_type, user_email, rsvp_requested, cancellable, error); ++ success = ecb_ews_do_method_request_publish_reply (cbews, icalcomp, comp, subcomp, response_type, user_email, rsvp_requested, cancellable, error); + + do_refresh = TRUE; + +diff -up evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.c.import-event-timezone evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.c +--- evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.c.import-event-timezone 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.c 2018-09-04 11:16:58.892645453 +0200 +@@ -178,7 +178,8 @@ e_cal_backend_ews_tz_util_get_msdn_equiv + { + const gchar *msdn_tz_location = NULL; + +- g_return_val_if_fail (ical_tz_location != NULL, NULL); ++ if (!ical_tz_location || !*ical_tz_location) ++ return NULL; + + g_rec_mutex_lock (&tz_mutex); + if (ical_to_msdn == NULL) { +@@ -199,7 +200,8 @@ e_cal_backend_ews_tz_util_get_ical_equiv + { + const gchar *ical_tz_location = NULL; + +- g_return_val_if_fail (msdn_tz_location != NULL, NULL); ++ if (!msdn_tz_location || !*msdn_tz_location) ++ return NULL; + + g_rec_mutex_lock (&tz_mutex); + if (msdn_to_ical == NULL) { +@@ -1113,11 +1115,11 @@ convert_vevent_calcomp_to_xml (ESoapMess + e_ews_message_write_string_parameter (msg, "ReminderIsSet", NULL, "false"); + + /* start time, end time and meeting time zone */ +- dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + tzid_start = (icaltimezone *) (dtstart.zone ? dtstart.zone : convert_data->default_zone); + ical_location_start = icaltimezone_get_location (tzid_start); + +- dtend = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); ++ dtend = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); + tzid_end = (icaltimezone *) (dtend.zone ? dtend.zone : convert_data->default_zone); + ical_location_end = icaltimezone_get_location (tzid_end); + +@@ -1272,7 +1274,7 @@ convert_vtodo_calcomp_to_xml (ESoapMessa + + prop = icalcomponent_get_first_property (icalcomp, ICAL_DUE_PROPERTY); + if (prop) { +- dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DUE_PROPERTY, icalproperty_get_due); ++ dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DUE_PROPERTY, icalproperty_get_due); + e_ews_cal_utils_set_time (msg, "DueDate", &dt, TRUE); + } + +@@ -1285,7 +1287,7 @@ convert_vtodo_calcomp_to_xml (ESoapMessa + + prop = icalcomponent_get_first_property (icalcomp, ICAL_DTSTART_PROPERTY); + if (prop) { +- dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + e_ews_cal_utils_set_time (msg, "StartDate", &dt, TRUE); + } + +@@ -1536,8 +1538,8 @@ convert_vevent_component_to_updatexml (E + } + /* Update other properties allowed only for meeting organizers*/ + /*meeting dates*/ +- dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); +- dtstart_old = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp_old, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dtstart_old = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp_old, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + dt_start_changed = icaltime_compare (dtstart, dtstart_old) != 0; + if (dtstart.zone != NULL) { + tzid_start = (icaltimezone *) dtstart.zone; +@@ -1548,8 +1550,8 @@ convert_vevent_component_to_updatexml (E + dt_start_changed_timezone_name = TRUE; + } + +- dtend = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); +- dtend_old = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp_old, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); ++ dtend = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); ++ dtend_old = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp_old, ICAL_DTEND_PROPERTY, icalproperty_get_dtend); + dt_end_changed = icaltime_compare (dtend, dtend_old) != 0; + if (dtend.zone != NULL) { + tzid_end = (icaltimezone *) dtend.zone; +@@ -1768,7 +1770,7 @@ convert_vtodo_component_to_updatexml (ES + + prop = icalcomponent_get_first_property (icalcomp, ICAL_DUE_PROPERTY); + if (prop) { +- dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DUE_PROPERTY, icalproperty_get_due); ++ dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DUE_PROPERTY, icalproperty_get_due); + e_ews_message_start_set_item_field (msg, "DueDate", "task", "Task"); + e_ews_cal_utils_set_time (msg, "DueDate", &dt, TRUE); + e_ews_message_end_set_item_field (msg); +@@ -1787,7 +1789,7 @@ convert_vtodo_component_to_updatexml (ES + + prop = icalcomponent_get_first_property (icalcomp, ICAL_DTSTART_PROPERTY); + if (prop) { +- dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); ++ dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, convert_data->vcalendar, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart); + e_ews_message_start_set_item_field (msg, "StartDate", "task", "Task"); + e_ews_cal_utils_set_time (msg, "StartDate", &dt, TRUE); + e_ews_message_end_set_item_field (msg); +@@ -2011,6 +2013,7 @@ e_cal_backend_ews_prepare_accept_item_re + + struct icaltimetype + e_cal_backend_ews_get_datetime_with_zone (ETimezoneCache *timezone_cache, ++ icalcomponent *vcalendar, + icalcomponent *comp, + icalproperty_kind prop_kind, + struct icaltimetype (* get_func) (const icalproperty *prop)) +@@ -2018,7 +2021,7 @@ e_cal_backend_ews_get_datetime_with_zone + struct icaltimetype dt = icaltime_null_time (); + icalproperty *prop; + icalparameter *param; +- const gchar *tzid; ++ const gchar *tzid, *eqv_tzid; + + g_return_val_if_fail (E_IS_TIMEZONE_CACHE (timezone_cache), dt); + g_return_val_if_fail (comp != NULL, dt); +@@ -2034,6 +2037,8 @@ e_cal_backend_ews_get_datetime_with_zone + icaltime_is_null_time (dt)) + return dt; + ++ dt.zone = NULL; ++ + param = icalproperty_get_first_parameter (prop, ICAL_TZID_PARAMETER); + if (!param) + return dt; +@@ -2042,7 +2047,23 @@ e_cal_backend_ews_get_datetime_with_zone + if (!tzid || !*tzid) + return dt; + +- dt.zone = e_timezone_cache_get_timezone (timezone_cache, tzid); ++ eqv_tzid = e_cal_backend_ews_tz_util_get_ical_equivalent (tzid); ++ ++ if (!eqv_tzid) { ++ /* Unlikely to work, but just in case */ ++ eqv_tzid = e_cal_backend_ews_tz_util_get_msdn_equivalent (tzid); ++ if (eqv_tzid) ++ eqv_tzid = e_cal_backend_ews_tz_util_get_ical_equivalent (eqv_tzid); ++ } ++ ++ if (eqv_tzid) ++ dt.zone = e_timezone_cache_get_timezone (timezone_cache, eqv_tzid); ++ ++ if (!dt.zone) ++ dt.zone = e_timezone_cache_get_timezone (timezone_cache, tzid); ++ ++ if (!dt.zone) ++ dt.zone = vcalendar ? icalcomponent_get_timezone (vcalendar, tzid) : NULL; + + return dt; + } +diff -up evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.h.import-event-timezone evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.h +--- evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.h.import-event-timezone 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/calendar/e-cal-backend-ews-utils.h 2018-09-04 11:14:27.814647542 +0200 +@@ -47,6 +47,7 @@ typedef struct { + ECalComponent *comp; + ECalComponent *old_comp; + icalcomponent *icalcomp; ++ icalcomponent *vcalendar; /* can be NULL, parent of icalcomp, where timezones can be eventually found */ + gchar *item_id; + gchar *change_key; + EEwsItemChangeType change_type; +@@ -82,6 +83,7 @@ guint e_cal_backend_ews_rid_to_index (ic + + struct icaltimetype + e_cal_backend_ews_get_datetime_with_zone (ETimezoneCache *timezone_cache, ++ icalcomponent *vcalendar, + icalcomponent *comp, + icalproperty_kind prop_kind, + struct icaltimetype (* get_func) (const icalproperty *prop)); diff --git a/SOURCES/evolution-ews-3.28.5-meeting-with-attachment.patch b/SOURCES/evolution-ews-3.28.5-meeting-with-attachment.patch new file mode 100644 index 0000000..b9191c4 --- /dev/null +++ b/SOURCES/evolution-ews-3.28.5-meeting-with-attachment.patch @@ -0,0 +1,114 @@ +diff -up evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c.meeting-with-attachment evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c +--- evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c.meeting-with-attachment 2018-09-27 18:32:25.783038625 +0200 ++++ evolution-ews-3.28.5/src/calendar/e-cal-backend-ews.c 2018-09-27 18:32:25.786038625 +0200 +@@ -2598,7 +2598,7 @@ ecb_ews_save_component_sync (ECalMetaBac + GHashTable *removed_indexes; + EwsCalendarConvertData convert_data = { 0 }; + EEwsItem *item = NULL; +- const EwsId *ews_id = NULL; ++ EwsId *ews_id = NULL; + const gchar *send_meeting_invitations; + icalcomponent *icalcomp; + icalproperty *prop; +@@ -2642,7 +2642,7 @@ ecb_ews_save_component_sync (ECalMetaBac + if (item) { + g_object_ref (item); + +- ews_id = e_ews_item_get_id (item); ++ ews_id = e_ews_id_copy (e_ews_item_get_id (item)); + } + } + +@@ -2666,6 +2666,8 @@ ecb_ews_save_component_sync (ECalMetaBac + g_clear_object (&item); + + item = items_req->data; ++ ++ e_ews_id_free (ews_id); + ews_id = NULL; + + if (e_ews_item_get_item_type (item) == E_EWS_ITEM_TYPE_ERROR) { +@@ -2674,7 +2676,7 @@ ecb_ews_save_component_sync (ECalMetaBac + success = FALSE; + } else { + item = g_object_ref (item); +- ews_id = e_ews_item_get_id (item); ++ ews_id = e_ews_id_copy (e_ews_item_get_id (item)); + } + } + +@@ -2689,13 +2691,21 @@ ecb_ews_save_component_sync (ECalMetaBac + g_warn_if_fail (ews_id != NULL); + + if (ews_id && ecb_ews_extract_attachments (icalcomp, &info_attachments)) { ++ gchar *changekey = NULL; + GSList *ids = NULL; + + success = e_ews_connection_create_attachments_sync (cbews->priv->cnc, EWS_PRIORITY_MEDIUM, +- ews_id, info_attachments, FALSE, NULL, &ids, cancellable, error); ++ ews_id, info_attachments, FALSE, &changekey, &ids, cancellable, error); + + g_slist_free_full (info_attachments, (GDestroyNotify) e_ews_attachment_info_free); + g_slist_free_full (ids, g_free); ++ ++ if (success && changekey) { ++ g_free (ews_id->change_key); ++ ews_id->change_key = changekey; ++ } else { ++ g_free (changekey); ++ } + } + } + +@@ -2730,6 +2740,7 @@ ecb_ews_save_component_sync (ECalMetaBac + } + + icalcomponent_free (icalcomp); ++ e_ews_id_free (ews_id); + g_clear_object (&item); + + for (link = (GSList *) instances; link && success; link = g_slist_next (link)) { +diff -up evolution-ews-3.28.5/src/server/e-ews-item.c.meeting-with-attachment evolution-ews-3.28.5/src/server/e-ews-item.c +--- evolution-ews-3.28.5/src/server/e-ews-item.c.meeting-with-attachment 2018-09-27 18:32:25.785038625 +0200 ++++ evolution-ews-3.28.5/src/server/e-ews-item.c 2018-09-27 18:32:25.787038625 +0200 +@@ -2695,3 +2695,28 @@ e_ews_item_util_strip_ex_address (const + + return ex_address; + } ++ ++EwsId * ++e_ews_id_copy (const EwsId *ews_id) ++{ ++ EwsId *copy; ++ ++ if (!ews_id) ++ return NULL; ++ ++ copy = g_new0 (EwsId, 1); ++ copy->id = g_strdup (ews_id->id); ++ copy->change_key = g_strdup (ews_id->change_key); ++ ++ return copy; ++} ++ ++void ++e_ews_id_free (EwsId *ews_id) ++{ ++ if (ews_id) { ++ g_free (ews_id->id); ++ g_free (ews_id->change_key); ++ g_free (ews_id); ++ } ++} +diff -up evolution-ews-3.28.5/src/server/e-ews-item.h.meeting-with-attachment evolution-ews-3.28.5/src/server/e-ews-item.h +--- evolution-ews-3.28.5/src/server/e-ews-item.h.meeting-with-attachment 2018-07-30 16:01:00.000000000 +0200 ++++ evolution-ews-3.28.5/src/server/e-ews-item.h 2018-09-27 18:32:25.787038625 +0200 +@@ -384,6 +384,8 @@ void e_ews_permissions_free (GSList *pe + /* Utility functions */ + const gchar * e_ews_item_util_strip_ex_address + (const gchar *ex_address); ++EwsId * e_ews_id_copy (const EwsId *ews_id); ++void e_ews_id_free (EwsId *ews_id); + + G_END_DECLS + diff --git a/SOURCES/evolution-ews-3.28.5-unknown-responsetype-as-needs-action.patch b/SOURCES/evolution-ews-3.28.5-unknown-responsetype-as-needs-action.patch new file mode 100644 index 0000000..e127d0b --- /dev/null +++ b/SOURCES/evolution-ews-3.28.5-unknown-responsetype-as-needs-action.patch @@ -0,0 +1,22 @@ +From 6d3dc9c50be654a9e250cfd53626f8526ff9eb70 Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Tue, 25 Sep 2018 16:20:12 +0200 +Subject: Treat 'Unknown' ResponseType as Needs-Action + +When creating a new meeting the attendees have returned by the server +an 'Unknown' ResponseType, which turned into 'Unknown' in the Evolution +UI (meeting editor). Treat it as Needs-Action instead. + +diff --git a/src/calendar/e-cal-backend-ews.c b/src/calendar/e-cal-backend-ews.c +index bf995813..06d56fa0 100644 +--- a/src/calendar/e-cal-backend-ews.c ++++ b/src/calendar/e-cal-backend-ews.c +@@ -311,7 +311,7 @@ ecb_ews_responsetype_to_partstat (const gchar *responsetype) + else if (g_ascii_strcasecmp (responsetype, "NoResponseReceived") == 0) + param = icalparameter_new_partstat (ICAL_PARTSTAT_NEEDSACTION); + else if (g_ascii_strcasecmp (responsetype, "Unknown") == 0) +- param = icalparameter_new_partstat (ICAL_PARTSTAT_NONE); ++ param = icalparameter_new_partstat (ICAL_PARTSTAT_NEEDSACTION); + + if (!param) + param = icalparameter_new_partstat (ICAL_PARTSTAT_NONE); diff --git a/SPECS/evolution-ews.spec b/SPECS/evolution-ews.spec new file mode 100644 index 0000000..f9d9690 --- /dev/null +++ b/SPECS/evolution-ews.spec @@ -0,0 +1,535 @@ +%global libmspack_version 0.4 + +Name: evolution-ews +Version: 3.28.5 +Release: 3%{?dist} +Group: Applications/Productivity +Summary: Evolution extension for Exchange Web Services +License: LGPLv2 +URL: https://wiki.gnome.org/Apps/Evolution +Source: http://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz + +%global eds_evo_version %{version} + +Patch01: evolution-ews-3.28.5-import-event-timezone.patch + +# https://gitlab.gnome.org/GNOME/evolution-ews/commit/dc50ba5a50a7b74f1d2710e5f860a7e81ab60d0b +Patch02: evolution-ews-3.28.5-disable-reminder-types.patch + +# https://gitlab.gnome.org/GNOME/evolution-ews/commit/6d3dc9c50be654a9e250cfd53626f8526ff9eb70 +Patch03: evolution-ews-3.28.5-unknown-responsetype-as-needs-action.patch + +# https://gitlab.gnome.org/GNOME/evolution-ews/issues/19 +Patch04: evolution-ews-3.28.5-contact-country-forgotten.patch + +# https://gitlab.gnome.org/GNOME/evolution-ews/issues/21 +Patch05: evolution-ews-3.28.5-meeting-with-attachment.patch + +# https://gitlab.gnome.org/GNOME/evolution-ews/commit/f50530ad101b47d461a345ff2b8b295b86c05d3a +Patch06: evolution-ews-3.28.5-double-collection-backend-populate.patch + +Requires: evolution >= %{eds_evo_version} +Requires: evolution-data-server >= %{eds_evo_version} +Requires: %{name}-langpacks = %{version}-%{release} +Requires: libmspack >= %{libmspack_version} + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: intltool +BuildRequires: pkgconfig(camel-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(evolution-data-server-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(evolution-mail-3.0) >= %{eds_evo_version} +BuildRequires: pkgconfig(evolution-shell-3.0) >= %{eds_evo_version} +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(libebackend-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(libebook-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(libecal-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(libedata-book-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(libedata-cal-1.2) >= %{eds_evo_version} +BuildRequires: pkgconfig(libemail-engine) >= %{eds_evo_version} +BuildRequires: pkgconfig(libical) +BuildRequires: pkgconfig(libmspack) >= %{libmspack_version} +BuildRequires: pkgconfig(libsoup-2.4) + +%description +This package allows Evolution to interact with Microsoft Exchange servers, +versions 2007 and later, through its Exchange Web Services (EWS) interface. + +%package langpacks +Summary: Translations for %{name} +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description langpacks +This package contains translations for %{name}. + +%prep +%setup -q + +%patch01 -p1 -b .import-event-timezone +%patch02 -p1 -b .disable-reminder-types +%patch03 -p1 -b .unknown-responsetype-as-needs-action +%patch04 -p1 -b .contact-country-forgotten +%patch05 -p1 -b .meeting-with-attachment +%patch06 -p1 -b .double-collection-backend-populate + +%build + +mkdir _build +cd _build + +export CFLAGS="$RPM_OPT_FLAGS -Wno-deprecated-declarations" +%cmake -G "Unix Makefiles" .. +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT + +cd _build +make install DESTDIR=$RPM_BUILD_ROOT + +%find_lang %{name} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%license COPYING +%doc NEWS README +%{_libdir}/evolution/modules/module-ews-configuration.so +%{_libdir}/evolution-data-server/camel-providers/libcamelews.so +%{_libdir}/evolution-data-server/camel-providers/libcamelews.urls +%{_libdir}/evolution-data-server/addressbook-backends/libebookbackendews.so +%{_libdir}/evolution-data-server/calendar-backends/libecalbackendews.so +%{_libdir}/evolution-data-server/registry-modules/module-ews-backend.so +%{_libdir}/evolution-ews/libcamelews-priv.so +%{_libdir}/evolution-ews/libevolution-ews.so +%{_datadir}/metainfo/org.gnome.Evolution-ews.metainfo.xml +%{_datadir}/evolution/errors/module-ews-configuration.error +%{_datadir}/evolution-data-server/ews/windowsZones.xml + +%files langpacks -f _build/%{name}.lang + +%changelog +* Mon Oct 01 2018 Milan Crha - 3.28.5-3 +- Add "Enable only Notification reminders in the calendar" upstream fix +- Add "Treat 'Unknown' ResponseType as Needs-Action" upstream fix +- Add "I#19 - Country is forgotten along the way to exchange server" upstream fix +- Add "I#21 - Meeting with attachment cannot be saved in 2010" upstream fix +- Add "Collection backend schedules two 'populate' requests after going online" upstream fix + +* Tue Sep 04 2018 Milan Crha - 3.28.5-2 +- Add patch for RH bug #1625162 (Calendar invites added with the wrong time zone) + +* Mon Jul 30 2018 Milan Crha - 3.28.5-1 +- Update to 3.28.5 + +* Mon Jul 16 2018 Milan Crha - 3.28.4-1 +- Update to 3.28.4 + +* Mon Jun 18 2018 Milan Crha - 3.28.3-1 +- Update to 3.28.3 + +* Mon Apr 09 2018 Milan Crha - 3.28.1-1 +- Update to 3.28.1 + +* Mon Mar 12 2018 Milan Crha - 3.28.0-1 +- Update to 3.28.0 + +* Mon Mar 05 2018 Milan Crha - 3.27.92-1 +- Update to 3.27.92 + +* Mon Feb 19 2018 Milan Crha - 3.27.91-1 +- Update to 3.27.91 + +* Tue Feb 06 2018 Milan Crha - 3.27.90-1 +- Update to 3.27.90 + +* Mon Jan 08 2018 Milan Crha - 3.27.4-1 +- Update to 3.27.4 + +* Mon Dec 11 2017 Milan Crha - 3.27.3-1 +- Update to 3.27.3 + +* Mon Nov 13 2017 Milan Crha - 3.27.2-1 +- Update to 3.27.2 + +* Wed Nov 08 2017 Milan Crha - 3.27.1-2 +- Rebuild for newer libical + +* Mon Oct 16 2017 Milan Crha - 3.27.1-1 +- Update to 3.27.1 + +* Mon Oct 02 2017 Milan Crha - 3.26.1-1 +- Update to 3.26.1 + +* Mon Sep 11 2017 Milan Crha - 3.26.0-1 +- Update to 3.26.0 + +* Mon Sep 04 2017 Milan Crha - 3.25.92.2-1 +- Update to 3.25.92.2 + +* Mon Sep 04 2017 Milan Crha - 3.25.92-1 +- Update to 3.25.92 + +* Tue Aug 22 2017 Ville Skyttä - 3.25.91-2 +- Install COPYING as %%license + +* Mon Aug 21 2017 Milan Crha - 3.25.91-1 +- Update to 3.25.91 + +* Mon Aug 07 2017 Milan Crha - 3.25.90-1 +- Update to 3.25.90 + +* Wed Aug 02 2017 Fedora Release Engineering - 3.25.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Mon Jul 31 2017 Florian Weimer - 3.25.4-3 +- Rebuild with binutils fix for ppc64le (#1475636) + +* Wed Jul 26 2017 Fedora Release Engineering - 3.25.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 17 2017 Milan Crha - 3.25.4-1 +- Update to 3.25.4 + +* Mon Jun 19 2017 Milan Crha - 3.25.3-1 +- Update to 3.25.3 + +* Mon May 22 2017 Milan Crha - 3.25.2-1 +- Update to 3.25.2 + +* Thu Apr 27 2017 Milan Crha - 3.25.1-2 +- Split translations into separate package + +* Mon Apr 24 2017 Milan Crha - 3.25.1-1 +- Update to 3.25.1 + +* Mon Apr 10 2017 Milan Crha - 3.24.1-1 +- Update to 3.24.1 + +* Mon Mar 20 2017 Milan Crha - 3.24.0-1 +- Update to 3.24.0 + +* Mon Mar 13 2017 Milan Crha - 3.23.92-1 +- Update to 3.23.92 + +* Mon Feb 27 2017 Milan Crha - 3.23.91-1 +- Update to 3.23.91 + +* Mon Feb 13 2017 Milan Crha - 3.23.90-1 +- Update to 3.23.90 + +* Fri Feb 10 2017 Fedora Release Engineering - 3.23.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 16 2017 Milan Crha - 3.23.4-1 +- Update to 3.23.4 + +* Mon Dec 12 2016 Milan Crha - 3.23.3-1 +- Update to 3.23.3 + +* Mon Nov 21 2016 Milan Crha - 3.23.2-1 +- Update to 3.23.2 + +* Mon Oct 24 2016 Milan Crha - 3.23.1-1 +- Update to 3.23.1 + +* Mon Oct 10 2016 Milan Crha - 3.22.1-1 +- Update to 3.22.1 + +* Mon Sep 19 2016 Milan Crha - 3.22.0-1 +- Update to 3.22.0 + +* Mon Sep 12 2016 Milan Crha - 3.21.92-1 +- Update to 3.21.92 + +* Mon Aug 29 2016 Milan Crha - 3.21.91-1 +- Update to 3.21.91 + +* Mon Aug 15 2016 Milan Crha - 3.21.90-1 +- Update to 3.21.90 + +* Mon Jul 18 2016 Milan Crha - 3.21.4-1 +- Update to 3.21.4 + +* Mon Jun 20 2016 Milan Crha - 3.21.3-1 +- Update to 3.21.3 + +* Mon May 23 2016 Milan Crha - 3.21.2-1 +- Update to 3.21.2 + +* Mon Apr 25 2016 Milan Crha - 3.21.1-1 +- Update to 3.21.1 + +* Mon Apr 11 2016 Milan Crha - 3.20.1-1 +- Update to 3.20.1 + +* Mon Mar 21 2016 Milan Crha - 3.20.0-1 +- Update to 3.20.0 + +* Mon Mar 14 2016 Milan Crha - 3.19.92-1 +- Update to 3.19.92 + +* Mon Feb 29 2016 Milan Crha - 3.19.91-1 +- Update to 3.19.91 + +* Mon Feb 15 2016 Milan Crha - 3.19.90-1 +- Update to 3.19.90 + +* Wed Feb 03 2016 Fedora Release Engineering - 3.19.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Jan 18 2016 David Tardon - 3.19.4-2 +- rebuild for libical 2.0.0 + +* Mon Jan 18 2016 Milan Crha - 3.19.4-1 +- Update to 3.19.4 + +* Mon Dec 14 2015 Milan Crha - 3.19.3-1 +- Update to 3.19.3 + +* Mon Nov 23 2015 Milan Crha - 3.19.2-1 +- Update to 3.19.2 + +* Mon Oct 26 2015 Milan Crha - 3.19.1-1 +- Update to 3.19.1 + +* Mon Oct 12 2015 Milan Crha - 3.18.1-1 +- Update to 3.18.1 + +* Mon Sep 21 2015 Milan Crha - 3.18.0-1 +- Update to 3.18.0 + +* Mon Sep 14 2015 Milan Crha - 3.17.92-1 +- Update to 3.17.92 + +* Mon Aug 31 2015 Milan Crha - 3.17.91-1 +- Update to 3.17.91 + +* Mon Aug 17 2015 Milan Crha - 3.17.90-1 +- Update to 3.17.90 + +* Mon Jul 20 2015 Milan Crha - 3.17.4-1 +- Update to 3.17.4 + +* Mon Jun 22 2015 Milan Crha - 3.17.3-1 +- Update to 3.17.3 + +* Wed Jun 17 2015 Fedora Release Engineering - 3.17.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon May 25 2015 Milan Crha - 3.17.2-1 +- Update to 3.17.2 + +* Mon Apr 27 2015 Milan Crha - 3.17.1-1 +- Update to 3.17.1 + +* Mon Apr 13 2015 Milan Crha - 3.16.1-1 +- Update to 3.16.1 + +* Mon Mar 23 2015 Milan Crha - 3.16.0-1 +- Update to 3.16.0 + +* Mon Mar 16 2015 Milan Crha - 3.15.92-1 +- Update to 3.15.92 + +* Mon Mar 02 2015 Milan Crha - 3.15.91-1 +- Update to 3.15.91 + +* Mon Feb 16 2015 Milan Crha - 3.13.90-1 +- Update to 3.13.90 + +* Mon Jan 26 2015 Milan Crha - 3.13.10-1 +- Update to 3.13.10 + +* Mon Dec 22 2014 Milan Crha - 3.13.9-1 +- Update to 3.13.9 + +* Mon Nov 24 2014 Milan Crha - 3.13.8-1 +- Update to 3.13.8 + +* Mon Oct 27 2014 Milan Crha - 3.13.7-1 +- Update to 3.13.7 + +* Mon Sep 22 2014 Milan Crha - 3.13.6-1 +- Update to 3.13.6 + +* Mon Aug 25 2014 Milan Crha - 3.13.5-1 +- Update to 3.13.5 + +* Sat Aug 16 2014 Fedora Release Engineering - 3.13.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Jul 30 2014 Milan Crha - 3.13.4-1 +- Update to 3.13.4 + +* Mon Jul 14 2014 Milan Crha - 3.12.4-1 +- Update to 3.12.4 + +* Mon Jun 09 2014 Milan Crha - 3.12.3-1 +- Update to 3.12.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 3.12.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 12 2014 Milan Crha - 3.12.2-1 +- Update to 3.12.2 + +* Mon Apr 14 2014 Milan Crha - 3.12.1-1 +- Update to 3.12.1 + +* Mon Mar 24 2014 Milan Crha - 3.12.0-1 +- Update to 3.12.0 + +* Mon Mar 17 2014 Milan Crha - 3.11.92-1 +- Update to 3.11.92 + +* Mon Mar 03 2014 Milan Crha - 3.11.91-1 +- Update to 3.11.91 + +* Mon Feb 17 2014 Milan Crha - 3.11.90-1 +- Update to 3.11.90 + +* Mon Feb 03 2014 Milan Crha - 3.11.5-1 +- Update to 3.11.5 + +* Mon Jan 13 2014 Milan Crha - 3.11.4-1 +- Update to 3.11.4 + +* Sun Dec 01 2013 Matthew Barnes - 3.11.2-3 +- Add $RPM_OPT_FLAGS to $CFLAGS (RH bug #1035930) + +* Thu Nov 21 2013 Milan Crha - 3.11.2-2 +- Rebuild for new libical (RH bug #1023020) + +* Mon Nov 18 2013 Milan Crha - 3.11.2-1 +- Update to 3.11.2 +- Disable compiler warnings about deprecated symbols + +* Tue Oct 22 2013 Matthew Barnes - 3.11.1-1 +- Update to 3.11.1 + +* Mon Oct 14 2013 Milan Crha - 3.10.1-1 +- Update to 3.10.1 + +* Mon Sep 23 2013 Milan Crha - 3.10.0-1 +- Update to 3.10.0 + +* Mon Sep 16 2013 Milan Crha - 3.9.92-1 +- Update to 3.9.92 + +* Mon Sep 02 2013 Milan Crha - 3.9.91-1 +- Update to 3.9.91 + +* Mon Aug 19 2013 Milan Crha - 3.9.90-1 +- Update to 3.9.90 + +* Mon Jul 29 2013 Milan Crha - 3.9.5-1 +- Update to 3.9.5 + +* Mon Jul 08 2013 Milan Crha - 3.9.4-1 +- Update to 3.9.4 + +* Mon Jun 17 2013 Milan Crha - 3.9.3-1 +- Update to 3.9.3 +- Add dependency on libmspack 0.4+ + +* Mon May 27 2013 Milan Crha - 3.9.2-1 +- Update to 3.9.2 + +* Sat May 25 2013 Rex Dieter 3.9.1-2 +- rebuild (libical) + +* Mon Apr 29 2013 Milan Crha - 3.9.1-1 +- Update to 3.9.1 + +* Mon Mar 25 2013 Milan Crha - 3.8.0-1 +- Update to 3.8.0 + +* Mon Mar 18 2013 Milan Crha - 3.7.92-1 +- Update to 3.7.92 + +* Mon Mar 04 2013 Milan Crha - 3.7.91-1 +- Update to 3.7.91 + +* Mon Feb 18 2013 Milan Crha - 3.7.90-1 +- Update to 3.7.90 + +* Mon Feb 04 2013 Milan Crha - 3.7.5-1 +- Update to 3.7.5 + +* Mon Jan 14 2013 Milan Crha - 3.7.4-1 +- Update to 3.7.4 + +* Thu Dec 20 2012 Matthew Barnes - 3.7.3.1-1 +- Update to 3.7.3.1 + +* Mon Nov 19 2012 Milan Crha - 3.7.2-1 +- Update to 3.7.2 + +* Mon Oct 22 2012 Milan Crha - 3.7.1-1 +- Update to 3.7.1 + +* Mon Sep 17 2012 Milan Crha - 3.5.92-1 +- Update to 3.5.92 + +* Mon Sep 03 2012 Milan Crha - 3.5.91-1 +- Update to 3.5.91 +- Remove patch for new xmlOutputBuffer API (fixed upstream) + +* Mon Aug 20 2012 Milan Crha - 3.5.90-1 +- Update to 3.5.90 +- Add patch for new xmlOutputBuffer API + +* Mon Aug 06 2012 Milan Crha - 3.5.5-1 +- Update to 3.5.5 + +* Thu Jul 19 2012 Fedora Release Engineering - 3.5.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 16 2012 Milan Crha - 3.5.4-1 +- Update to 3.5.4 + +* Mon Jun 25 2012 Matthew Barnes - 3.5.3-1 +- Update to 3.5.3 + +* Mon Jun 04 2012 Milan Crha - 3.5.2-1 +- Update to 3.5.2 + +* Sun Apr 29 2012 Matthew Barnes - 3.5.1-1 +- Update to 3.5.1 + +* Mon Mar 26 2012 Milan Crha - 3.4.0-1 +- Update to 3.4.0 + +* Mon Mar 19 2012 Milan Crha - 3.3.92-1 +- Update to 3.3.92 + +* Tue Mar 06 2012 Milan Crha - 3.3.91-1 +- Update to 3.3.91 + +* Mon Feb 20 2012 Milan Crha - 3.3.90-1 +- Update to 3.3.90 + +* Mon Feb 06 2012 Milan Crha - 3.3.5-1 +- Update to 3.3.5 + +* Mon Jan 16 2012 Milan Crha - 3.3.4-1 +- Update to 3.3.4 + +* Fri Jan 13 2012 Fedora Release Engineering - 3.3.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Dec 19 2011 Milan Crha - 3.3.3-1 +- Update to 3.3.3 +- Removed the last patch (fixed upstream) + +* Mon Nov 21 2011 Milan Crha - 3.3.2-1 +- Update to 3.3.2 +- Removed obsolete patches (fixed upstream) + +* Mon Nov 07 2011 Matthew Barnes - 3.3.1-1 +- Initial packaging for Fedora 17.