summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnome.scm3
-rw-r--r--gnu/packages/patches/evolution-data-server-libical-compat.patch36
3 files changed, 39 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 448e70aa38..af030781a5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -838,6 +838,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/eudev-rules-directory.patch		\
   %D%/packages/patches/evilwm-lost-focus-bug.patch		\
   %D%/packages/patches/evolution-data-server-locales.patch	\
+  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
   %D%/packages/patches/exiv2-CVE-2017-14860.patch		\
   %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch	\
   %D%/packages/patches/extundelete-e2fsprogs-1.44.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cadd4d0655..ba5181c756 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6256,7 +6256,8 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
-              (patches (search-patches "evolution-data-server-locales.patch"))
+              (patches (search-patches "evolution-data-server-locales.patch"
+                                       "evolution-data-server-libical-compat.patch"))
               (sha256
                (base32
                 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
diff --git a/gnu/packages/patches/evolution-data-server-libical-compat.patch b/gnu/packages/patches/evolution-data-server-libical-compat.patch
new file mode 100644
index 0000000000..a988519ea0
--- /dev/null
+++ b/gnu/packages/patches/evolution-data-server-libical-compat.patch
@@ -0,0 +1,36 @@
+Prevent test failure and possible data loss due to API change in libical 3.0.7.
+
+https://gitlab.gnome.org/GNOME/evolution-data-server/issues/185
+https://lists.infradead.org/pipermail/libical-devel/2020-January/000907.html
+
+Adapted from upstream:
+
+https://gitlab.gnome.org/GNOME/evolution-data-server/commit/77384ab552c19bf374dbeda53dc37f98d07bd4ec
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -108,7 +108,7 @@
+ 
+ set(gcr_minimum_version 3.4)
+ set(libgdata_minimum_version 0.15.1)
+-set(libical_minimum_version 2.0)
++set(libical_minimum_version 3.0.7)
+ set(libsecret_minimum_version 0.5)
+ set(libxml_minimum_version 2.0.0)
+ set(sqlite_minimum_version 3.7.17)
+diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
+index 7501f2a43dcc3af91e93e89751caf76e77c2ac23..93f4806ba2c5193f746e9fae5bf74d08ad05f8bf 100644
+--- a/src/calendar/libedata-cal/e-cal-meta-backend.c
++++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
+@@ -3958,9 +3958,8 @@
+ 					gchar *base64;
+ 
+ 					base64 = g_base64_encode ((const guchar *) content, len);
+-					new_attach = icalattach_new_from_data (base64, NULL, NULL);
++					new_attach = icalattach_new_from_data (base64, (GFunc) g_free, NULL);
+ 					g_free (content);
+-					g_free (base64);
+ 
+ 					ecmb_remove_all_but_filename_parameter (prop);
+