Index: Portfile
===================================================================
--- Portfile	(revision 107138)
+++ Portfile	(working copy)
@@ -4,8 +4,7 @@
 PortSystem 1.0
 
 name            evolution-data-server
-version         2.30.3
-revision        5
+version         2.32.3
 set branch      [join [lrange [split ${version} .] 0 1] .]
 description     Addressbook and calender libs for GNOME.
 long_description    Evolution Data Server provides a central location for \
@@ -17,10 +16,11 @@
 homepage        http://www.gnome.org/
 master_sites    gnome:sources/${name}/${branch}/
 
-checksums       md5     095bac0a80043d57d00f64319f3cbdbb \
-                sha1    449d3e7a9b19768d5a792434ca5d55c9d2496993 \
-                rmd160  2d4dc2fd6b8dfdc013042400b382f4684e642425
+use_bzip2       yes
 
+checksums       rmd160  adc8b07aef41a89d16fc426541c12190a3688b8f \
+                sha256  744026a745b711b3e393b61fed21c4926d1b10a3aa7da64f4b33a3e3bf5b085c
+
 depends_build   port:pkgconfig \
                 port:intltool \
                 port:gtk-doc
@@ -29,25 +29,20 @@
                 port:kerberos5 \
                 port:libcomerr \
                 port:libgnome-keyring \
+                port:libgdata \
                 port:libgweather \
                 port:libical \
                 port:nss \
                 port:gnuregex \
                 port:db46
 
-use_bzip2       yes
-
 patchfiles      patch-configure.ac.diff \
                 patch-m4-evo_krb5_support.m4.diff \
-                patch-servers-google-libgdata-gdata-entry.c.diff \
+                patch-libgdata07-compat.diff \
+                patch-calendar-libedata-cal-Makefile.am.diff \
+                patch-calendar-libedata-cal-e-cal-backend-intervaltree.c.diff \
                 patch-calendar-backends-caldav-e-cal-backend-caldav.c.diff
 
-# Delete this once upstream actually fixes configure.ac
-# See https://trac.macports.org/ticket/34599
-post-patch {
-	reinplace "/AM_INIT_AUTOMAKE/s/-Werror//" ${worksrcpath}/configure.ac
-}
-
 use_autoreconf    yes
 autoreconf.args  -fvi
 
@@ -57,11 +52,13 @@
         --enable-gnome-keyring \
         --enable-ipv6 \
         --enable-nntp \
+        --enable-calendar \
         --with-nspr-includes=${prefix}/include/nspr  \
         --with-nspr-libs=${prefix}/lib/nspr  \
         --with-nss-includes=${prefix}/include/nss \
         --with-nss-libs=${prefix}/lib/nss \
         --with-krb5=/usr \
+        --disable-gtk3 \
         --disable-silent-rules \
         --disable-schemas-install
 
@@ -88,6 +85,4 @@
         gconftool-2 --makefile-install-rule ${prefix}/etc/gconf/schemas/*.schemas"
 }
 
-livecheck.type  regex
-livecheck.url   http://ftp.gnome.org/pub/gnome/sources/${name}/${branch}/
-livecheck.regex {LATEST-IS-(\d+(?:\.\d+)*)}
+livecheck.type  gnome
Index: files/patch-calendar-backends-caldav-e-cal-backend-caldav.c.diff
===================================================================
--- files/patch-calendar-backends-caldav-e-cal-backend-caldav.c.diff	(revision 107138)
+++ files/patch-calendar-backends-caldav-e-cal-backend-caldav.c.diff	(working copy)
@@ -1,6 +1,6 @@
---- calendar/backends/caldav/e-cal-backend-caldav.c.orig	2010-07-18 10:42:46.000000000 -0700
-+++ calendar/backends/caldav/e-cal-backend-caldav.c	2013-06-02 14:32:50.000000000 -0700
-@@ -1038,8 +1038,8 @@
+--- calendar/backends/caldav/e-cal-backend-caldav.c.orig	2011-04-21 12:35:36.000000000 -0700
++++ calendar/backends/caldav/e-cal-backend-caldav.c	2013-06-02 23:29:41.000000000 -0700
+@@ -1072,8 +1072,8 @@
  	soup_message_set_request (message,
  				  "application/xml",
  				  SOUP_MEMORY_COPY,
@@ -11,7 +11,7 @@
  
  	/* Send the request now */
  	send_and_handle_redirection (priv->session, message, NULL);
-@@ -1180,8 +1180,8 @@
+@@ -1214,8 +1214,8 @@
  	soup_message_set_request (message,
  				  "application/xml",
  				  SOUP_MEMORY_COPY,
@@ -22,7 +22,7 @@
  
  	/* Send the request now */
  	send_and_handle_redirection (priv->session, message, NULL);
-@@ -1502,8 +1502,8 @@
+@@ -1530,8 +1530,8 @@
  	soup_message_set_request (message,
  				  "application/xml",
  				  SOUP_MEMORY_COPY,
@@ -33,7 +33,7 @@
  
  	/* Send the request now */
  	send_and_handle_redirection (priv->session, message, NULL);
-@@ -1552,8 +1552,8 @@
+@@ -1580,8 +1580,8 @@
  		soup_message_set_request (message,
  				  "application/xml",
  				  SOUP_MEMORY_COPY,
Index: files/patch-calendar-libedata-cal-Makefile.am.diff
===================================================================
--- files/patch-calendar-libedata-cal-Makefile.am.diff	(revision 0)
+++ files/patch-calendar-libedata-cal-Makefile.am.diff	(working copy)
@@ -0,0 +1,12 @@
+--- calendar/libedata-cal/Makefile.am.orig	2013-05-09 16:06:35.000000000 -0700
++++ calendar/libedata-cal/Makefile.am	2013-05-09 16:07:56.000000000 -0700
+@@ -161,8 +161,7 @@
+ 	$(top_builddir)/calendar/libecal/libecal-1.2.la				\
+ 	libedata-cal-1.2.la		\
+ 	$(top_builddir)/libedataserver/libedataserver-1.2.la			\
+-	$(EVOLUTION_CALENDAR_LIBS)						\
+-	-lgcov
++	$(EVOLUTION_CALENDAR_LIBS)
+ 
+ .PHONY: coverage
+ coverage: 
Index: files/patch-calendar-libedata-cal-e-cal-backend-intervaltree.c.diff
===================================================================
--- files/patch-calendar-libedata-cal-e-cal-backend-intervaltree.c.diff	(revision 0)
+++ files/patch-calendar-libedata-cal-e-cal-backend-intervaltree.c.diff	(working copy)
@@ -0,0 +1,10 @@
+--- calendar/libedata-cal/e-cal-backend-intervaltree.c.orig	2013-05-09 15:53:05.000000000 -0700
++++ calendar/libedata-cal/e-cal-backend-intervaltree.c	2013-05-09 15:53:34.000000000 -0700
+@@ -26,7 +26,6 @@
+ 
+ #include <stdio.h>
+ #include <string.h>
+-#include <malloc.h>
+ 
+ #include "e-cal-backend-intervaltree.h"
+ 
Index: files/patch-configure.ac.diff
===================================================================
--- files/patch-configure.ac.diff	(revision 107138)
+++ files/patch-configure.ac.diff	(working copy)
@@ -1,17 +1,25 @@
---- configure.ac.orig	2010-06-22 12:00:20.000000000 -0700
-+++ configure.ac	2011-11-29 11:26:25.000000000 -0800
-@@ -145,9 +145,7 @@
+--- configure.ac.orig	2011-04-21 12:35:37.000000000 -0700
++++ configure.ac	2013-05-09 15:04:51.000000000 -0700
+@@ -20,7 +20,7 @@
+ dnl Autoconf / Automake Initialization
+ AC_PREREQ(2.58)
+ AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server])
+-AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar -Wall -Werror foreign])
++AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar -Wall  foreign])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_CONFIG_SRCDIR(README)
+ AC_CONFIG_HEADERS(config.h)
+@@ -164,8 +164,7 @@
  dnl Compiler Warning Flags
  dnl ******************************
  AS_COMPILER_FLAGS(WARNING_FLAGS,
 -	"-DG_DISABLE_DEPRECATED
 -	-DPANGO_DISABLE_DEPRECATED
--	-DGDK_DISABLE_DEPRECATED
-+	" -DPANGO_DISABLE_DEPRECATED
++	"-DPANGO_DISABLE_DEPRECATED
  	-DGDK_PIXBUF_DISABLE_DEPRECATED
+ 	-DGTK_DISABLE_DEPRECATED
  	-DG_DISABLE_SINGLE_INCLUDES
- 	-DGTK_DISABLE_SINGLE_INCLUDES
-@@ -181,7 +179,7 @@
+@@ -199,7 +198,7 @@
  AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
  AC_SUBST(AM_CPPFLAGS)
  
@@ -20,7 +28,24 @@
  
  dnl ******************************
  dnl Initialize maintainer mode
-@@ -301,8 +299,8 @@
+@@ -325,11 +324,13 @@
+ 	libsoup-2.4 >= libsoup_minimum_version
+ 	libgdata >= libgdata_minimum_version])
+ 
+-dnl libgdata 0.7 will break API.  We're not going to deal with
+-dnl that on a stable branch, so cap the supported version.
++ac_cv_have_gdata_07=no
++dnl libgdata 0.7 breaks API, thus deal with it.
+ if $PKG_CONFIG --atleast-version=0.7 libgdata; then
+-	AC_MSG_ERROR([libgdata 0.7 is not supported, use 0.6 instead])
++        ac_cv_have_gdata_07=yes
++        AC_DEFINE(HAVE_GDATA_07, 1, [libgdata is 0.7 or higher])
+ fi
++AC_MSG_RESULT([$ac_cv_have_gdata_07])
+ 
+ LIBICAL_REQUIRED=libical_minimum_version
+ AC_SUBST(LIBICAL_REQUIRED)
+@@ -337,8 +338,8 @@
  dnl ******************************
  dnl regex check
  dnl ******************************
@@ -31,7 +56,7 @@
  			AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
  			[AC_MSG_ERROR([No regex library found])])])
  AC_SUBST(REGEX_LIBS)
-@@ -315,8 +313,8 @@
+@@ -351,8 +352,8 @@
  	[Prefix where libdb is installed]),
  	[libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
  
Index: files/patch-libgdata07-compat.diff
===================================================================
--- files/patch-libgdata07-compat.diff	(revision 0)
+++ files/patch-libgdata07-compat.diff	(working copy)
@@ -0,0 +1,279 @@
+--- addressbook/backends/google/e-book-backend-google.c.orig	2013-05-09 15:13:08.000000000 -0700
++++ addressbook/backends/google/e-book-backend-google.c	2013-05-09 15:20:35.000000000 -0700
+@@ -511,7 +511,11 @@
+ 		GTimeVal updated;
+ 
+ 		g_assert (g_time_val_from_iso8601 (last_updated, &updated) == TRUE);
+-		gdata_query_set_updated_min (query, &updated);
++                #ifdef HAVE_GDATA_07
++                gdata_query_set_updated_min (query, updated.tv_sec);
++                #else
++                gdata_query_set_updated_min (query, &updated);
++                #endif
+ 		gdata_contacts_query_set_show_deleted (GDATA_CONTACTS_QUERY (query), TRUE);
+ 	}
+ 
+@@ -788,11 +792,18 @@
+ 	g_free (xml);
+ 
+ 	/* Update the contact on the server */
+-	new_entry = GDATA_ENTRY (
+-		gdata_contacts_service_update_contact (
+-			GDATA_CONTACTS_SERVICE (priv->service),
+-			GDATA_CONTACTS_CONTACT (entry),
+-			NULL, &error));
++        #ifdef HAVE_GDATA_07
++        new_entry = gdata_service_update_entry (
++                        GDATA_SERVICE (priv->service),
++                        entry,
++                        NULL, &error);
++        #else
++        new_entry = GDATA_ENTRY (
++                gdata_contacts_service_update_contact (
++                        GDATA_CONTACTS_SERVICE (priv->service),
++                        GDATA_CONTACTS_CONTACT (entry),
++                        NULL, &error));
++        #endif
+ 	g_object_unref (entry);
+ 
+ 	if (!new_entry) {
+@@ -1189,6 +1200,12 @@
+ 		E_CONTACT_ORG_UNIT,
+ 		E_CONTACT_TITLE,
+ 		E_CONTACT_ROLE,
++                #ifdef HAVE_GDATA_07
++                E_CONTACT_HOMEPAGE_URL,
++                E_CONTACT_BLOG_URL,
++                E_CONTACT_BIRTH_DATE,
++                E_CONTACT_ANNIVERSARY,
++                #endif
+ 		E_CONTACT_NOTE
+ 	};
+ 
+--- addressbook/backends/google/util.c.orig	2013-05-09 15:25:00.000000000 -0700
++++ addressbook/backends/google/util.c	2013-05-09 15:33:18.000000000 -0700
+@@ -58,6 +58,57 @@
+ 	return NULL;
+ }
+ 
++#ifdef HAVE_GDATA_07
++static void
++remove_anniversary (GDataContactsContact *contact)
++{
++        GList *events, *itr;
++
++        events = gdata_contacts_contact_get_events (contact);
++        if (!events)
++                return;
++
++        events = g_list_copy (events);
++        g_list_foreach (events, (GFunc) g_object_ref, NULL);
++
++        gdata_contacts_contact_remove_all_events (contact);
++        for (itr = events; itr; itr = itr->next) {
++                GDataGContactEvent *event = itr->data;
++
++                if (g_strcmp0 (gdata_gcontact_event_get_relation_type (event), GDATA_GCONTACT_EVENT_ANNIVERSARY) != 0)
++                        gdata_contacts_contact_add_event (contact, event);
++        }
++
++        g_list_foreach (events, (GFunc) g_object_unref, NULL);
++        g_list_free (events);
++}
++
++static void
++remove_websites (GDataContactsContact *contact)
++{
++        GList *websites, *itr;
++
++        websites = gdata_contacts_contact_get_websites (contact);
++        if (!websites)
++                return;
++
++        websites = g_list_copy (websites);
++        g_list_foreach (websites, (GFunc) g_object_ref, NULL);
++
++        gdata_contacts_contact_remove_all_websites (contact);
++        for (itr = websites; itr; itr = itr->next) {
++                GDataGContactWebsite *website = itr->data;
++
++                if (g_strcmp0 (gdata_gcontact_website_get_relation_type (website), GDATA_GCONTACT_WEBSITE_HOME_PAGE) != 0 &&
++                    g_strcmp0 (gdata_gcontact_website_get_relation_type (website), GDATA_GCONTACT_WEBSITE_BLOG) != 0)
++                        gdata_contacts_contact_add_website (contact, website);
++        }
++
++        g_list_foreach (websites, (GFunc) g_object_unref, NULL);
++        g_list_free (websites);
++}
++#endif
++
+ gboolean
+ _gdata_entry_update_from_e_contact (GDataEntry *entry, EContact *contact)
+ {
+@@ -69,6 +120,10 @@
+ 	gboolean have_postal_primary = FALSE;
+ 	gboolean have_org_primary = FALSE;
+ 	const gchar *title, *role, *note;
++        #ifdef HAVE_GDATA_07
++        EContactDate *bdate;
++        const gchar *url;
++        #endif
+ 
+ 	attributes = e_vcard_get_attributes (E_VCARD (contact));
+ 
+@@ -214,6 +269,58 @@
+ 			gdata_gd_organization_set_job_description (org, role);
+ 	}
+ 
++        #ifdef HAVE_GDATA_07
++        remove_websites (GDATA_CONTACTS_CONTACT (entry));
++
++        url = e_contact_get_const (contact, E_CONTACT_HOMEPAGE_URL);
++        if (url && *url) {
++                GDataGContactWebsite *website = gdata_gcontact_website_new (url, GDATA_GCONTACT_WEBSITE_HOME_PAGE, NULL, FALSE);
++                if (website) {
++                        gdata_contacts_contact_add_website (GDATA_CONTACTS_CONTACT (entry), website);
++                        g_object_unref (website);
++                }
++        }
++
++        url = e_contact_get_const (contact, E_CONTACT_BLOG_URL);
++        if (url && *url) {
++                GDataGContactWebsite *website = gdata_gcontact_website_new (url, GDATA_GCONTACT_WEBSITE_BLOG, NULL, FALSE);
++                if (website) {
++                        gdata_contacts_contact_add_website (GDATA_CONTACTS_CONTACT (entry), website);
++                        g_object_unref (website);
++                }
++        }
++
++        gdata_contacts_contact_set_birthday (GDATA_CONTACTS_CONTACT (entry), NULL, TRUE);
++        bdate = e_contact_get (contact, E_CONTACT_BIRTH_DATE);
++        if (bdate) {
++                GDate *gdate = g_date_new_dmy (bdate->day, bdate->month, bdate->year);
++
++                if (gdate) {
++                        gdata_contacts_contact_set_birthday (GDATA_CONTACTS_CONTACT (entry), gdate, TRUE);
++                        g_date_free (gdate);
++                }
++                e_contact_date_free (bdate);
++        }
++
++        remove_anniversary (GDATA_CONTACTS_CONTACT (entry));
++        bdate = e_contact_get (contact, E_CONTACT_ANNIVERSARY);
++        if (bdate) {
++                GDate *gdate = g_date_new_dmy (bdate->day, bdate->month, bdate->year);
++
++                if (gdate) {
++                        GDataGContactEvent *anni = gdata_gcontact_event_new (gdate, GDATA_GCONTACT_EVENT_ANNIVERSARY, NULL);
++
++                        if (anni) {
++                                gdata_contacts_contact_add_event (GDATA_CONTACTS_CONTACT (entry), anni);
++                                g_object_unref (anni);
++                        }
++
++                        g_date_free (gdate);
++                }
++                e_contact_date_free (bdate);
++        }
++        #endif
++
+ 	return TRUE;
+ }
+ 
+@@ -241,6 +348,11 @@
+ 	GDataGDPostalAddress *postal_address;
+ 	GDataGDOrganization *org;
+ 	GHashTable *extended_props;
++        #ifdef HAVE_GDATA_07
++        GList *websites, *events;
++        GDate bdate;
++        gboolean bdate_has_year;
++        #endif
+ 
+ 	uid = gdata_entry_get_id (entry);
+ 	if (NULL == uid)
+@@ -352,6 +464,84 @@
+ 	extended_props = gdata_contacts_contact_get_extended_properties (GDATA_CONTACTS_CONTACT (entry));
+ 	g_hash_table_foreach (extended_props, (GHFunc) foreach_extended_props_cb, vcard);
+ 
++        #ifdef HAVE_GDATA_07
++        websites = gdata_contacts_contact_get_websites (GDATA_CONTACTS_CONTACT (entry));
++        for (itr = websites; itr != NULL; itr = itr->next) {
++                GDataGContactWebsite *website = itr->data;
++                const gchar *uri, *reltype;
++
++                if (!website)
++                        continue;
++
++                uri = gdata_gcontact_website_get_uri (website);
++                reltype = gdata_gcontact_website_get_relation_type (website);
++
++                if (!uri || !*uri || !reltype)
++                        continue;
++
++                if (g_str_equal (reltype, GDATA_GCONTACT_WEBSITE_HOME_PAGE))
++                        e_contact_set (E_CONTACT (vcard), E_CONTACT_HOMEPAGE_URL, uri);
++                else if (g_str_equal (reltype, GDATA_GCONTACT_WEBSITE_BLOG))
++                        e_contact_set (E_CONTACT (vcard), E_CONTACT_BLOG_URL, uri);
++        }
++
++        g_date_clear (&bdate, 1);
++        bdate_has_year = gdata_contacts_contact_get_birthday (GDATA_CONTACTS_CONTACT (entry), &bdate);
++        if (!bdate_has_year) {
++                GTimeVal curr_time = { 0 };
++                GDate tmp_date;
++
++                g_get_current_time (&curr_time);
++                g_date_clear (&tmp_date, 1);
++                g_date_set_time_val (&tmp_date, &curr_time);
++
++                g_date_set_year (&bdate, g_date_get_year (&tmp_date));
++        }
++
++        if (g_date_valid (&bdate)) {
++                EContactDate *date = e_contact_date_new ();
++
++                if (date) {
++                        date->day = g_date_get_day (&bdate);
++                        date->month =  g_date_get_month (&bdate);
++                        date->year = g_date_get_year (&bdate);
++
++                        e_contact_set (E_CONTACT (vcard), E_CONTACT_BIRTH_DATE, date);
++                        e_contact_date_free (date);
++                }
++        }
++
++        events = gdata_contacts_contact_get_events (GDATA_CONTACTS_CONTACT (entry));
++        for (itr = events; itr; itr = itr->next) {
++                GDataGContactEvent *event = itr->data;
++
++                if (!event)
++                        continue;
++
++                if (!gdata_gcontact_event_get_relation_type (event) ||
++                    !g_str_equal (gdata_gcontact_event_get_relation_type (event), GDATA_GCONTACT_EVENT_ANNIVERSARY))
++                        continue;
++
++                g_date_clear (&bdate, 1);
++                gdata_gcontact_event_get_date (event, &bdate);
++
++                if (g_date_valid (&bdate)) {
++                        EContactDate *date = e_contact_date_new ();
++
++                        if (date) {
++                                date->day = g_date_get_day (&bdate);
++                                date->month =  g_date_get_month (&bdate);
++                                date->year = g_date_get_year (&bdate);
++
++                                e_contact_set (E_CONTACT (vcard), E_CONTACT_ANNIVERSARY, date);
++                                e_contact_date_free (date);
++                        }
++                }
++
++                break;
++        }
++        #endif
++
+ 	return E_CONTACT (vcard);
+ }
+ 
Index: files/patch-servers-google-libgdata-gdata-entry.c.diff
===================================================================
--- files/patch-servers-google-libgdata-gdata-entry.c.diff	(revision 107138)
+++ files/patch-servers-google-libgdata-gdata-entry.c.diff	(working copy)
@@ -1,14 +0,0 @@
---- servers/google/libgdata/gdata-entry.c.orig	2010-06-20 05:15:47.000000000 -0700
-+++ servers/google/libgdata/gdata-entry.c	2013-06-02 14:25:37.000000000 -0700
-@@ -877,9 +877,9 @@
- 		xmlOutputBufferFlush (buf);
- 
- 		if (buf->conv == NULL)
--			xmlString = g_strdup ((gchar *)buf->buffer->content);
-+			xmlString = g_strdup ((gchar *)xmlBufContent(buf->buffer));
- 		else
--			xmlString = g_strdup ((gchar *)buf->conv->content);
-+			xmlString = g_strdup ((gchar *)xmlBufContent(buf->conv));
- 		xmlOutputBufferClose (buf);
- 	}
- 
