Ticket #39469: patch-evolution-data-server.diff

File patch-evolution-data-server.diff, 19.5 KB (added by dbevans (David B. Evans), 11 years ago)

Proposed patch

  • Portfile

     
    44PortSystem 1.0
    55
    66name            evolution-data-server
    7 version         2.30.3
    8 revision        5
     7version         2.32.3
    98set branch      [join [lrange [split ${version} .] 0 1] .]
    109description     Addressbook and calender libs for GNOME.
    1110long_description    Evolution Data Server provides a central location for \
     
    1716homepage        http://www.gnome.org/
    1817master_sites    gnome:sources/${name}/${branch}/
    1918
    20 checksums       md5     095bac0a80043d57d00f64319f3cbdbb \
    21                 sha1    449d3e7a9b19768d5a792434ca5d55c9d2496993 \
    22                 rmd160  2d4dc2fd6b8dfdc013042400b382f4684e642425
     19use_bzip2       yes
    2320
     21checksums       rmd160  adc8b07aef41a89d16fc426541c12190a3688b8f \
     22                sha256  744026a745b711b3e393b61fed21c4926d1b10a3aa7da64f4b33a3e3bf5b085c
     23
    2424depends_build   port:pkgconfig \
    2525                port:intltool \
    2626                port:gtk-doc
     
    2929                port:kerberos5 \
    3030                port:libcomerr \
    3131                port:libgnome-keyring \
     32                port:libgdata \
    3233                port:libgweather \
    3334                port:libical \
    3435                port:nss \
    3536                port:gnuregex \
    3637                port:db46
    3738
    38 use_bzip2       yes
    39 
    4039patchfiles      patch-configure.ac.diff \
    4140                patch-m4-evo_krb5_support.m4.diff \
    42                 patch-servers-google-libgdata-gdata-entry.c.diff \
     41                patch-libgdata07-compat.diff \
     42                patch-calendar-libedata-cal-Makefile.am.diff \
     43                patch-calendar-libedata-cal-e-cal-backend-intervaltree.c.diff \
    4344                patch-calendar-backends-caldav-e-cal-backend-caldav.c.diff
    4445
    45 # Delete this once upstream actually fixes configure.ac
    46 # See https://trac.macports.org/ticket/34599
    47 post-patch {
    48         reinplace "/AM_INIT_AUTOMAKE/s/-Werror//" ${worksrcpath}/configure.ac
    49 }
    50 
    5146use_autoreconf    yes
    5247autoreconf.args  -fvi
    5348
     
    5752        --enable-gnome-keyring \
    5853        --enable-ipv6 \
    5954        --enable-nntp \
     55        --enable-calendar \
    6056        --with-nspr-includes=${prefix}/include/nspr  \
    6157        --with-nspr-libs=${prefix}/lib/nspr  \
    6258        --with-nss-includes=${prefix}/include/nss \
    6359        --with-nss-libs=${prefix}/lib/nss \
    6460        --with-krb5=/usr \
     61        --disable-gtk3 \
    6562        --disable-silent-rules \
    6663        --disable-schemas-install
    6764
     
    8885        gconftool-2 --makefile-install-rule ${prefix}/etc/gconf/schemas/*.schemas"
    8986}
    9087
    91 livecheck.type  regex
    92 livecheck.url   http://ftp.gnome.org/pub/gnome/sources/${name}/${branch}/
    93 livecheck.regex {LATEST-IS-(\d+(?:\.\d+)*)}
     88livecheck.type  gnome
  • files/patch-calendar-backends-caldav-e-cal-backend-caldav.c.diff

     
    1 --- calendar/backends/caldav/e-cal-backend-caldav.c.orig        2010-07-18 10:42:46.000000000 -0700
    2 +++ calendar/backends/caldav/e-cal-backend-caldav.c     2013-06-02 14:32:50.000000000 -0700
    3 @@ -1038,8 +1038,8 @@
     1--- calendar/backends/caldav/e-cal-backend-caldav.c.orig        2011-04-21 12:35:36.000000000 -0700
     2+++ calendar/backends/caldav/e-cal-backend-caldav.c     2013-06-02 23:29:41.000000000 -0700
     3@@ -1072,8 +1072,8 @@
    44        soup_message_set_request (message,
    55                                  "application/xml",
    66                                  SOUP_MEMORY_COPY,
     
    1111 
    1212        /* Send the request now */
    1313        send_and_handle_redirection (priv->session, message, NULL);
    14 @@ -1180,8 +1180,8 @@
     14@@ -1214,8 +1214,8 @@
    1515        soup_message_set_request (message,
    1616                                  "application/xml",
    1717                                  SOUP_MEMORY_COPY,
     
    2222 
    2323        /* Send the request now */
    2424        send_and_handle_redirection (priv->session, message, NULL);
    25 @@ -1502,8 +1502,8 @@
     25@@ -1530,8 +1530,8 @@
    2626        soup_message_set_request (message,
    2727                                  "application/xml",
    2828                                  SOUP_MEMORY_COPY,
     
    3333 
    3434        /* Send the request now */
    3535        send_and_handle_redirection (priv->session, message, NULL);
    36 @@ -1552,8 +1552,8 @@
     36@@ -1580,8 +1580,8 @@
    3737                soup_message_set_request (message,
    3838                                  "application/xml",
    3939                                  SOUP_MEMORY_COPY,
  • files/patch-calendar-libedata-cal-Makefile.am.diff

     
     1--- calendar/libedata-cal/Makefile.am.orig      2013-05-09 16:06:35.000000000 -0700
     2+++ calendar/libedata-cal/Makefile.am   2013-05-09 16:07:56.000000000 -0700
     3@@ -161,8 +161,7 @@
     4        $(top_builddir)/calendar/libecal/libecal-1.2.la                         \
     5        libedata-cal-1.2.la             \
     6        $(top_builddir)/libedataserver/libedataserver-1.2.la                    \
     7-       $(EVOLUTION_CALENDAR_LIBS)                                              \
     8-       -lgcov
     9+       $(EVOLUTION_CALENDAR_LIBS)
     10 
     11 .PHONY: coverage
     12 coverage:
  • files/patch-calendar-libedata-cal-e-cal-backend-intervaltree.c.diff

     
     1--- calendar/libedata-cal/e-cal-backend-intervaltree.c.orig     2013-05-09 15:53:05.000000000 -0700
     2+++ calendar/libedata-cal/e-cal-backend-intervaltree.c  2013-05-09 15:53:34.000000000 -0700
     3@@ -26,7 +26,6 @@
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7-#include <malloc.h>
     8 
     9 #include "e-cal-backend-intervaltree.h"
     10 
  • files/patch-configure.ac.diff

     
    1 --- configure.ac.orig   2010-06-22 12:00:20.000000000 -0700
    2 +++ configure.ac        2011-11-29 11:26:25.000000000 -0800
    3 @@ -145,9 +145,7 @@
     1--- configure.ac.orig   2011-04-21 12:35:37.000000000 -0700
     2+++ configure.ac        2013-05-09 15:04:51.000000000 -0700
     3@@ -20,7 +20,7 @@
     4 dnl Autoconf / Automake Initialization
     5 AC_PREREQ(2.58)
     6 AC_INIT([evolution-data-server],[eds_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server])
     7-AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar -Wall -Werror foreign])
     8+AM_INIT_AUTOMAKE([gnu 1.10 tar-ustar -Wall  foreign])
     9 AC_CONFIG_MACRO_DIR([m4])
     10 AC_CONFIG_SRCDIR(README)
     11 AC_CONFIG_HEADERS(config.h)
     12@@ -164,8 +164,7 @@
    413 dnl Compiler Warning Flags
    514 dnl ******************************
    615 AS_COMPILER_FLAGS(WARNING_FLAGS,
    716-       "-DG_DISABLE_DEPRECATED
    817-       -DPANGO_DISABLE_DEPRECATED
    9 -       -DGDK_DISABLE_DEPRECATED
    10 +       " -DPANGO_DISABLE_DEPRECATED
     18+       "-DPANGO_DISABLE_DEPRECATED
    1119        -DGDK_PIXBUF_DISABLE_DEPRECATED
     20        -DGTK_DISABLE_DEPRECATED
    1221        -DG_DISABLE_SINGLE_INCLUDES
    13         -DGTK_DISABLE_SINGLE_INCLUDES
    14 @@ -181,7 +179,7 @@
     22@@ -199,7 +198,7 @@
    1523 AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
    1624 AC_SUBST(AM_CPPFLAGS)
    1725 
     
    2028 
    2129 dnl ******************************
    2230 dnl Initialize maintainer mode
    23 @@ -301,8 +299,8 @@
     31@@ -325,11 +324,13 @@
     32        libsoup-2.4 >= libsoup_minimum_version
     33        libgdata >= libgdata_minimum_version])
     34 
     35-dnl libgdata 0.7 will break API.  We're not going to deal with
     36-dnl that on a stable branch, so cap the supported version.
     37+ac_cv_have_gdata_07=no
     38+dnl libgdata 0.7 breaks API, thus deal with it.
     39 if $PKG_CONFIG --atleast-version=0.7 libgdata; then
     40-       AC_MSG_ERROR([libgdata 0.7 is not supported, use 0.6 instead])
     41+        ac_cv_have_gdata_07=yes
     42+        AC_DEFINE(HAVE_GDATA_07, 1, [libgdata is 0.7 or higher])
     43 fi
     44+AC_MSG_RESULT([$ac_cv_have_gdata_07])
     45 
     46 LIBICAL_REQUIRED=libical_minimum_version
     47 AC_SUBST(LIBICAL_REQUIRED)
     48@@ -337,8 +338,8 @@
    2449 dnl ******************************
    2550 dnl regex check
    2651 dnl ******************************
     
    3156                        AC_DEFINE(HAVE_REGEXEC,1,[Define to 1 if you have the regexec function.])],
    3257                        [AC_MSG_ERROR([No regex library found])])])
    3358 AC_SUBST(REGEX_LIBS)
    34 @@ -315,8 +313,8 @@
     59@@ -351,8 +352,8 @@
    3560        [Prefix where libdb is installed]),
    3661        [libdb_prefix="$withval"], [libdb_prefix='${prefix}'])
    3762 
  • files/patch-libgdata07-compat.diff

     
     1--- addressbook/backends/google/e-book-backend-google.c.orig    2013-05-09 15:13:08.000000000 -0700
     2+++ addressbook/backends/google/e-book-backend-google.c 2013-05-09 15:20:35.000000000 -0700
     3@@ -511,7 +511,11 @@
     4                GTimeVal updated;
     5 
     6                g_assert (g_time_val_from_iso8601 (last_updated, &updated) == TRUE);
     7-               gdata_query_set_updated_min (query, &updated);
     8+                #ifdef HAVE_GDATA_07
     9+                gdata_query_set_updated_min (query, updated.tv_sec);
     10+                #else
     11+                gdata_query_set_updated_min (query, &updated);
     12+                #endif
     13                gdata_contacts_query_set_show_deleted (GDATA_CONTACTS_QUERY (query), TRUE);
     14        }
     15 
     16@@ -788,11 +792,18 @@
     17        g_free (xml);
     18 
     19        /* Update the contact on the server */
     20-       new_entry = GDATA_ENTRY (
     21-               gdata_contacts_service_update_contact (
     22-                       GDATA_CONTACTS_SERVICE (priv->service),
     23-                       GDATA_CONTACTS_CONTACT (entry),
     24-                       NULL, &error));
     25+        #ifdef HAVE_GDATA_07
     26+        new_entry = gdata_service_update_entry (
     27+                        GDATA_SERVICE (priv->service),
     28+                        entry,
     29+                        NULL, &error);
     30+        #else
     31+        new_entry = GDATA_ENTRY (
     32+                gdata_contacts_service_update_contact (
     33+                        GDATA_CONTACTS_SERVICE (priv->service),
     34+                        GDATA_CONTACTS_CONTACT (entry),
     35+                        NULL, &error));
     36+        #endif
     37        g_object_unref (entry);
     38 
     39        if (!new_entry) {
     40@@ -1189,6 +1200,12 @@
     41                E_CONTACT_ORG_UNIT,
     42                E_CONTACT_TITLE,
     43                E_CONTACT_ROLE,
     44+                #ifdef HAVE_GDATA_07
     45+                E_CONTACT_HOMEPAGE_URL,
     46+                E_CONTACT_BLOG_URL,
     47+                E_CONTACT_BIRTH_DATE,
     48+                E_CONTACT_ANNIVERSARY,
     49+                #endif
     50                E_CONTACT_NOTE
     51        };
     52 
     53--- addressbook/backends/google/util.c.orig     2013-05-09 15:25:00.000000000 -0700
     54+++ addressbook/backends/google/util.c  2013-05-09 15:33:18.000000000 -0700
     55@@ -58,6 +58,57 @@
     56        return NULL;
     57 }
     58 
     59+#ifdef HAVE_GDATA_07
     60+static void
     61+remove_anniversary (GDataContactsContact *contact)
     62+{
     63+        GList *events, *itr;
     64+
     65+        events = gdata_contacts_contact_get_events (contact);
     66+        if (!events)
     67+                return;
     68+
     69+        events = g_list_copy (events);
     70+        g_list_foreach (events, (GFunc) g_object_ref, NULL);
     71+
     72+        gdata_contacts_contact_remove_all_events (contact);
     73+        for (itr = events; itr; itr = itr->next) {
     74+                GDataGContactEvent *event = itr->data;
     75+
     76+                if (g_strcmp0 (gdata_gcontact_event_get_relation_type (event), GDATA_GCONTACT_EVENT_ANNIVERSARY) != 0)
     77+                        gdata_contacts_contact_add_event (contact, event);
     78+        }
     79+
     80+        g_list_foreach (events, (GFunc) g_object_unref, NULL);
     81+        g_list_free (events);
     82+}
     83+
     84+static void
     85+remove_websites (GDataContactsContact *contact)
     86+{
     87+        GList *websites, *itr;
     88+
     89+        websites = gdata_contacts_contact_get_websites (contact);
     90+        if (!websites)
     91+                return;
     92+
     93+        websites = g_list_copy (websites);
     94+        g_list_foreach (websites, (GFunc) g_object_ref, NULL);
     95+
     96+        gdata_contacts_contact_remove_all_websites (contact);
     97+        for (itr = websites; itr; itr = itr->next) {
     98+                GDataGContactWebsite *website = itr->data;
     99+
     100+                if (g_strcmp0 (gdata_gcontact_website_get_relation_type (website), GDATA_GCONTACT_WEBSITE_HOME_PAGE) != 0 &&
     101+                    g_strcmp0 (gdata_gcontact_website_get_relation_type (website), GDATA_GCONTACT_WEBSITE_BLOG) != 0)
     102+                        gdata_contacts_contact_add_website (contact, website);
     103+        }
     104+
     105+        g_list_foreach (websites, (GFunc) g_object_unref, NULL);
     106+        g_list_free (websites);
     107+}
     108+#endif
     109+
     110 gboolean
     111 _gdata_entry_update_from_e_contact (GDataEntry *entry, EContact *contact)
     112 {
     113@@ -69,6 +120,10 @@
     114        gboolean have_postal_primary = FALSE;
     115        gboolean have_org_primary = FALSE;
     116        const gchar *title, *role, *note;
     117+        #ifdef HAVE_GDATA_07
     118+        EContactDate *bdate;
     119+        const gchar *url;
     120+        #endif
     121 
     122        attributes = e_vcard_get_attributes (E_VCARD (contact));
     123 
     124@@ -214,6 +269,58 @@
     125                        gdata_gd_organization_set_job_description (org, role);
     126        }
     127 
     128+        #ifdef HAVE_GDATA_07
     129+        remove_websites (GDATA_CONTACTS_CONTACT (entry));
     130+
     131+        url = e_contact_get_const (contact, E_CONTACT_HOMEPAGE_URL);
     132+        if (url && *url) {
     133+                GDataGContactWebsite *website = gdata_gcontact_website_new (url, GDATA_GCONTACT_WEBSITE_HOME_PAGE, NULL, FALSE);
     134+                if (website) {
     135+                        gdata_contacts_contact_add_website (GDATA_CONTACTS_CONTACT (entry), website);
     136+                        g_object_unref (website);
     137+                }
     138+        }
     139+
     140+        url = e_contact_get_const (contact, E_CONTACT_BLOG_URL);
     141+        if (url && *url) {
     142+                GDataGContactWebsite *website = gdata_gcontact_website_new (url, GDATA_GCONTACT_WEBSITE_BLOG, NULL, FALSE);
     143+                if (website) {
     144+                        gdata_contacts_contact_add_website (GDATA_CONTACTS_CONTACT (entry), website);
     145+                        g_object_unref (website);
     146+                }
     147+        }
     148+
     149+        gdata_contacts_contact_set_birthday (GDATA_CONTACTS_CONTACT (entry), NULL, TRUE);
     150+        bdate = e_contact_get (contact, E_CONTACT_BIRTH_DATE);
     151+        if (bdate) {
     152+                GDate *gdate = g_date_new_dmy (bdate->day, bdate->month, bdate->year);
     153+
     154+                if (gdate) {
     155+                        gdata_contacts_contact_set_birthday (GDATA_CONTACTS_CONTACT (entry), gdate, TRUE);
     156+                        g_date_free (gdate);
     157+                }
     158+                e_contact_date_free (bdate);
     159+        }
     160+
     161+        remove_anniversary (GDATA_CONTACTS_CONTACT (entry));
     162+        bdate = e_contact_get (contact, E_CONTACT_ANNIVERSARY);
     163+        if (bdate) {
     164+                GDate *gdate = g_date_new_dmy (bdate->day, bdate->month, bdate->year);
     165+
     166+                if (gdate) {
     167+                        GDataGContactEvent *anni = gdata_gcontact_event_new (gdate, GDATA_GCONTACT_EVENT_ANNIVERSARY, NULL);
     168+
     169+                        if (anni) {
     170+                                gdata_contacts_contact_add_event (GDATA_CONTACTS_CONTACT (entry), anni);
     171+                                g_object_unref (anni);
     172+                        }
     173+
     174+                        g_date_free (gdate);
     175+                }
     176+                e_contact_date_free (bdate);
     177+        }
     178+        #endif
     179+
     180        return TRUE;
     181 }
     182 
     183@@ -241,6 +348,11 @@
     184        GDataGDPostalAddress *postal_address;
     185        GDataGDOrganization *org;
     186        GHashTable *extended_props;
     187+        #ifdef HAVE_GDATA_07
     188+        GList *websites, *events;
     189+        GDate bdate;
     190+        gboolean bdate_has_year;
     191+        #endif
     192 
     193        uid = gdata_entry_get_id (entry);
     194        if (NULL == uid)
     195@@ -352,6 +464,84 @@
     196        extended_props = gdata_contacts_contact_get_extended_properties (GDATA_CONTACTS_CONTACT (entry));
     197        g_hash_table_foreach (extended_props, (GHFunc) foreach_extended_props_cb, vcard);
     198 
     199+        #ifdef HAVE_GDATA_07
     200+        websites = gdata_contacts_contact_get_websites (GDATA_CONTACTS_CONTACT (entry));
     201+        for (itr = websites; itr != NULL; itr = itr->next) {
     202+                GDataGContactWebsite *website = itr->data;
     203+                const gchar *uri, *reltype;
     204+
     205+                if (!website)
     206+                        continue;
     207+
     208+                uri = gdata_gcontact_website_get_uri (website);
     209+                reltype = gdata_gcontact_website_get_relation_type (website);
     210+
     211+                if (!uri || !*uri || !reltype)
     212+                        continue;
     213+
     214+                if (g_str_equal (reltype, GDATA_GCONTACT_WEBSITE_HOME_PAGE))
     215+                        e_contact_set (E_CONTACT (vcard), E_CONTACT_HOMEPAGE_URL, uri);
     216+                else if (g_str_equal (reltype, GDATA_GCONTACT_WEBSITE_BLOG))
     217+                        e_contact_set (E_CONTACT (vcard), E_CONTACT_BLOG_URL, uri);
     218+        }
     219+
     220+        g_date_clear (&bdate, 1);
     221+        bdate_has_year = gdata_contacts_contact_get_birthday (GDATA_CONTACTS_CONTACT (entry), &bdate);
     222+        if (!bdate_has_year) {
     223+                GTimeVal curr_time = { 0 };
     224+                GDate tmp_date;
     225+
     226+                g_get_current_time (&curr_time);
     227+                g_date_clear (&tmp_date, 1);
     228+                g_date_set_time_val (&tmp_date, &curr_time);
     229+
     230+                g_date_set_year (&bdate, g_date_get_year (&tmp_date));
     231+        }
     232+
     233+        if (g_date_valid (&bdate)) {
     234+                EContactDate *date = e_contact_date_new ();
     235+
     236+                if (date) {
     237+                        date->day = g_date_get_day (&bdate);
     238+                        date->month =  g_date_get_month (&bdate);
     239+                        date->year = g_date_get_year (&bdate);
     240+
     241+                        e_contact_set (E_CONTACT (vcard), E_CONTACT_BIRTH_DATE, date);
     242+                        e_contact_date_free (date);
     243+                }
     244+        }
     245+
     246+        events = gdata_contacts_contact_get_events (GDATA_CONTACTS_CONTACT (entry));
     247+        for (itr = events; itr; itr = itr->next) {
     248+                GDataGContactEvent *event = itr->data;
     249+
     250+                if (!event)
     251+                        continue;
     252+
     253+                if (!gdata_gcontact_event_get_relation_type (event) ||
     254+                    !g_str_equal (gdata_gcontact_event_get_relation_type (event), GDATA_GCONTACT_EVENT_ANNIVERSARY))
     255+                        continue;
     256+
     257+                g_date_clear (&bdate, 1);
     258+                gdata_gcontact_event_get_date (event, &bdate);
     259+
     260+                if (g_date_valid (&bdate)) {
     261+                        EContactDate *date = e_contact_date_new ();
     262+
     263+                        if (date) {
     264+                                date->day = g_date_get_day (&bdate);
     265+                                date->month =  g_date_get_month (&bdate);
     266+                                date->year = g_date_get_year (&bdate);
     267+
     268+                                e_contact_set (E_CONTACT (vcard), E_CONTACT_ANNIVERSARY, date);
     269+                                e_contact_date_free (date);
     270+                        }
     271+                }
     272+
     273+                break;
     274+        }
     275+        #endif
     276+
     277        return E_CONTACT (vcard);
     278 }
     279 
  • files/patch-servers-google-libgdata-gdata-entry.c.diff

     
    1 --- servers/google/libgdata/gdata-entry.c.orig  2010-06-20 05:15:47.000000000 -0700
    2 +++ servers/google/libgdata/gdata-entry.c       2013-06-02 14:25:37.000000000 -0700
    3 @@ -877,9 +877,9 @@
    4                 xmlOutputBufferFlush (buf);
    5  
    6                 if (buf->conv == NULL)
    7 -                       xmlString = g_strdup ((gchar *)buf->buffer->content);
    8 +                       xmlString = g_strdup ((gchar *)xmlBufContent(buf->buffer));
    9                 else
    10 -                       xmlString = g_strdup ((gchar *)buf->conv->content);
    11 +                       xmlString = g_strdup ((gchar *)xmlBufContent(buf->conv));
    12                 xmlOutputBufferClose (buf);
    13         }
    14