diff --git a/.evolution-ews.metadata b/.evolution-ews.metadata new file mode 100644 index 0000000..6cc273d --- /dev/null +++ b/.evolution-ews.metadata @@ -0,0 +1 @@ +422f2564c6fd4e29a2f153d761095249adadd407 SOURCES/evolution-ews-3.8.5.tar.xz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/evolution-ews-3.8.5-create-appointments.patch b/SOURCES/evolution-ews-3.8.5-create-appointments.patch new file mode 100644 index 0000000..9b25361 --- /dev/null +++ b/SOURCES/evolution-ews-3.8.5-create-appointments.patch @@ -0,0 +1,31 @@ +diff -up evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c.create-appointments evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c +--- evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c.create-appointments 2013-08-11 13:42:31.000000000 +0200 ++++ evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c 2013-08-16 11:52:53.790798070 +0200 +@@ -65,8 +65,16 @@ e_ews_collect_attendees (icalcomponent * + prop = icalcomponent_get_next_property (comp, ICAL_ATTENDEE_PROPERTY)) { + + str = icalproperty_get_attendee (prop); ++ ++ if (!str || !*str) ++ continue; ++ + /* figure the email address of the attendee, discard "mailto:" if it's there */ +- if (!g_ascii_strncasecmp (str, "mailto:", 7)) str = (str) + 7; ++ if (!g_ascii_strncasecmp (str, "mailto:", 7)) ++ str = (str) + 7; ++ ++ if (!*str) ++ continue; + + /* if this attenddee is the orgenizer - dont add him/her + in some cases there is no maito for email if meeting orginazer */ +@@ -756,6 +764,9 @@ e_ews_collect_organizer (icalcomponent * + else + org_email_address = org; + ++ if (org_email_address && !*org_email_address) ++ org_email_address = NULL; ++ + return org_email_address; + } + diff --git a/SOURCES/evolution-ews-3.8.5-free-busy-fetch.patch b/SOURCES/evolution-ews-3.8.5-free-busy-fetch.patch new file mode 100644 index 0000000..0fa97a5 --- /dev/null +++ b/SOURCES/evolution-ews-3.8.5-free-busy-fetch.patch @@ -0,0 +1,21 @@ +diff -up evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c.free-busy-fetch evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c +--- evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c.free-busy-fetch 2013-10-15 09:46:45.763373729 +0200 ++++ evolution-ews-3.8.5/src/calendar/e-cal-backend-ews-utils.c 2013-10-15 09:46:45.773373729 +0200 +@@ -404,8 +404,16 @@ ewscal_add_availability_rrule (ESoapMess + { + struct icalrecurrencetype recur = icalproperty_get_rrule (prop); + gchar buffer[16]; ++ gint dayorder; + +- snprintf (buffer, 16, "%d", icalrecurrencetype_day_position (recur.by_day[0])); ++ dayorder = icalrecurrencetype_day_position (recur.by_day[0]); ++ dayorder = dayorder % 5; ++ if (dayorder < 0) ++ dayorder += 5; ++ dayorder += 1; ++ ++ /* expected value is 1..5, inclusive */ ++ snprintf (buffer, 16, "%d", dayorder); + e_ews_message_write_string_parameter (msg, "DayOrder", NULL, buffer); + + snprintf (buffer, 16, "%d", recur.by_month[0]); diff --git a/SOURCES/evolution-ews-3.8.5-get-attachments-prototype-fix.patch b/SOURCES/evolution-ews-3.8.5-get-attachments-prototype-fix.patch new file mode 100644 index 0000000..fb2db9d --- /dev/null +++ b/SOURCES/evolution-ews-3.8.5-get-attachments-prototype-fix.patch @@ -0,0 +1,118 @@ +diff -up evolution-ews-3.8.5/src/calendar/e-cal-backend-ews.c.get-attachments-prototype-fix evolution-ews-3.8.5/src/calendar/e-cal-backend-ews.c +--- evolution-ews-3.8.5/src/calendar/e-cal-backend-ews.c.get-attachments-prototype-fix 2013-08-11 13:42:31.000000000 +0200 ++++ evolution-ews-3.8.5/src/calendar/e-cal-backend-ews.c 2013-09-10 15:36:31.910691543 +0200 +@@ -3164,6 +3164,7 @@ ews_get_attachments (ECalBackendEws *cbe + ECalComponent *comp; + const gchar *uid; + GSList *uris = NULL, *info_attachments = NULL; ++ GError *local_error = NULL; + + e_ews_item_has_attachments (item, &has_attachment); + if (!has_attachment) +@@ -3193,7 +3194,7 @@ ews_get_attachments (ECalBackendEws *cbe + &info_attachments, + NULL, NULL, + cbews->priv->cancellable, +- NULL)) { ++ &local_error)) { + icalcomponent *icalcomp; + icalproperty *icalprop; + icalparameter *icalparam; +@@ -3233,7 +3234,10 @@ ews_get_attachments (ECalBackendEws *cbe + + g_slist_free_full (uris, g_free); + g_slist_free_full (info_attachments, (GDestroyNotify) e_ews_attachment_info_free); ++ } else { ++ g_warning ("%s: Failed to get attachments: %s", G_STRFUNC, local_error ? local_error->message : "Unknown error"); + } ++ g_clear_error (&local_error); + + PRIV_UNLOCK (cbews->priv); + } +diff -up evolution-ews-3.8.5/src/server/e-ews-connection.c.get-attachments-prototype-fix evolution-ews-3.8.5/src/server/e-ews-connection.c +--- evolution-ews-3.8.5/src/server/e-ews-connection.c.get-attachments-prototype-fix 2013-08-11 13:42:31.000000000 +0200 ++++ evolution-ews-3.8.5/src/server/e-ews-connection.c 2013-09-10 15:36:31.911691543 +0200 +@@ -6202,7 +6202,7 @@ e_ews_connection_get_attachments (EEwsCo + g_object_unref (simple); + } + +-GSList * ++gboolean + e_ews_connection_get_attachments_finish (EEwsConnection *cnc, + GAsyncResult *result, + GSList **items, +@@ -6211,24 +6211,24 @@ e_ews_connection_get_attachments_finish + GSimpleAsyncResult *simple; + EwsAsyncData *async_data; + +- g_return_val_if_fail (cnc != NULL, NULL); ++ g_return_val_if_fail (cnc != NULL, FALSE); + g_return_val_if_fail ( + g_simple_async_result_is_valid ( + result, G_OBJECT (cnc), e_ews_connection_get_attachments), +- NULL); ++ FALSE); + + simple = G_SIMPLE_ASYNC_RESULT (result); + async_data = g_simple_async_result_get_op_res_gpointer (simple); + + if (g_simple_async_result_propagate_error (simple, error)) +- return NULL; ++ return FALSE; + + *items = async_data->items; + +- return async_data->items_created; ++ return TRUE; + } + +-GSList * ++gboolean + e_ews_connection_get_attachments_sync (EEwsConnection *cnc, + gint pri, + const gchar *uid, +@@ -6243,9 +6243,9 @@ e_ews_connection_get_attachments_sync (E + { + EAsyncClosure *closure; + GAsyncResult *result; +- GSList *attachments_ids; ++ gboolean success; + +- g_return_val_if_fail (cnc != NULL, NULL); ++ g_return_val_if_fail (cnc != NULL, FALSE); + + closure = e_async_closure_new (); + +@@ -6256,12 +6256,12 @@ e_ews_connection_get_attachments_sync (E + + result = e_async_closure_wait (closure); + +- attachments_ids = e_ews_connection_get_attachments_finish ( ++ success = e_ews_connection_get_attachments_finish ( + cnc, result, items, error); + + e_async_closure_free (closure); + +- return attachments_ids; ++ return success; + } + + static void +diff -up evolution-ews-3.8.5/src/server/e-ews-connection.h.get-attachments-prototype-fix evolution-ews-3.8.5/src/server/e-ews-connection.h +--- evolution-ews-3.8.5/src/server/e-ews-connection.h.get-attachments-prototype-fix 2013-08-11 13:42:31.000000000 +0200 ++++ evolution-ews-3.8.5/src/server/e-ews-connection.h 2013-09-10 15:36:31.912691543 +0200 +@@ -723,12 +723,12 @@ void e_ews_connection_get_attachments + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +-GSList * e_ews_connection_get_attachments_finish ++gboolean e_ews_connection_get_attachments_finish + (EEwsConnection *cnc, + GAsyncResult *result, + GSList **items, + GError **error); +-GSList * e_ews_connection_get_attachments_sync ++gboolean e_ews_connection_get_attachments_sync + (EEwsConnection *cnc, + gint pri, + const gchar *comp_uid, diff --git a/SPECS/evolution-ews.spec b/SPECS/evolution-ews.spec new file mode 100644 index 0000000..1578799 --- /dev/null +++ b/SPECS/evolution-ews.spec @@ -0,0 +1,184 @@ +%global evo_base_version 3.8 + +Name: evolution-ews +Version: 3.8.5 +Release: 4%{?dist} +Group: Applications/Productivity +Summary: Evolution extension for Exchange Web Services +License: LGPLv2 +URL: http://projects.gnome.org/evolution +Source: http://download.gnome.org/sources/%{name}/3.8/%{name}-%{version}.tar.xz + +# regression of GNOME bug #702922 +Patch01: evolution-ews-3.8.5-create-appointments.patch + +# RH bug #1005152 +Patch02: evolution-ews-3.8.5-get-attachments-prototype-fix.patch + +# RH bug #1018322 +Patch03: evolution-ews-3.8.5-free-busy-fetch.patch + +Requires: evolution >= %{version} +Requires: evolution-data-server >= %{version} + +BuildRequires: evolution-devel >= %{version} +BuildRequires: evolution-data-server-devel >= %{version} +BuildRequires: intltool + +%description +This package allows Evolution to interact with Microsoft Exchange servers, +versions 2007 and later, through its Exchange Web Services (EWS) interface. + +%prep +%setup -q +%patch01 -p1 -b .create-appointments +%patch02 -p1 -b .get-attachments-prototype-fix +%patch03 -p1 -b .free-busy-fetch + +%build +%configure --with-internal-lzx +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT + +# Remove files we don't want packaged (no devel subpackage). +rm -r $RPM_BUILD_ROOT%{_includedir}/evolution-data-server/ +rm $RPM_BUILD_ROOT%{_libdir}/evolution-data-server/*.la +rm $RPM_BUILD_ROOT%{_libdir}/evolution-data-server/*.so +rm $RPM_BUILD_ROOT%{_libdir}/evolution-data-server/*/*.la +rm $RPM_BUILD_ROOT%{_libdir}/evolution/%{evo_base_version}/modules/*.la +rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/*.pc + +%find_lang %{name} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files -f %{name}.lang +%defattr(-,root,root,-) +%doc COPYING NEWS README +%{_libdir}/evolution-data-server/libeews-1.2.so.* +%{_libdir}/evolution-data-server/libewsutils.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/%{evo_base_version}/modules/module-ews-configuration.so +%{_datadir}/evolution/%{evo_base_version}/errors/module-ews-configuration.error + +%changelog +* Tue Oct 15 2013 Milan Crha - 3.8.5-4 +- Add patch for RH bug #1018322 (fails to get Free/Busy information) + +* Tue Sep 10 2013 Milan Crha - 3.8.5-3 +- Add patch for RH bug #1005152 (fails to download attachments) + +* Fri Aug 16 2013 Milan Crha - 3.8.5-2 +- Add patch to regression of GNOME bug #702922 (Cannot create appointments) + +* Mon Aug 12 2013 Milan Crha - 3.8.5-1 +- Update to 3.8.5 + +* Wed Jul 24 2013 Milan Crha - 3.8.4-1 +- Update to 3.8.4 + +* Mon Jun 10 2013 Milan Crha - 3.8.3-1 +- Update to 3.8.3 + +* Sun May 12 2013 Matthew Barnes - 3.8.2-1 +- Update to 3.8.2 + +* Sun Apr 14 2013 Matthew Barnes - 3.8.1-1 +- Update to 3.8.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.