diff options
-rw-r--r-- | gnome-extra/evolution-data-server/ChangeLog | 13 | ||||
-rw-r--r-- | gnome-extra/evolution-data-server/evolution-data-server-3.6.2-r1.ebuild (renamed from gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild) | 108 | ||||
-rw-r--r-- | gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-g_thread_init.patch | 162 | ||||
-rw-r--r-- | gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch | 51 | ||||
-rw-r--r-- | gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-caldav-cannot-modify.patch | 35 | ||||
-rw-r--r-- | gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch | 138 | ||||
-rw-r--r-- | gnome-extra/evolution-data-server/metadata.xml | 3 |
7 files changed, 61 insertions, 449 deletions
diff --git a/gnome-extra/evolution-data-server/ChangeLog b/gnome-extra/evolution-data-server/ChangeLog index 98de95ef884e..9b32ed3b20cf 100644 --- a/gnome-extra/evolution-data-server/ChangeLog +++ b/gnome-extra/evolution-data-server/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for gnome-extra/evolution-data-server # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.346 2012/11/25 19:33:56 ulm Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.347 2012/12/19 05:51:46 tetromino Exp $ + +*evolution-data-server-3.6.2-r1 (19 Dec 2012) + + 19 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> + -files/evolution-data-server-3.2.2-g_thread_init.patch, + -files/evolution-data-server-3.2.2-gmodule-explicit.patch, + -evolution-data-server-3.2.3-r2.ebuild, + -files/evolution-data-server-3.2.3-caldav-cannot-modify.patch, + -files/evolution-data-server-3.2.3-google-calendar.patch, + +evolution-data-server-3.6.2-r1.ebuild, metadata.xml: + Version bump for gnome-3.6. Drop old. Switch to global introspection flag. 25 Nov 2012; Ulrich Müller <ulm@gentoo.org> evolution-data-server-2.32.3-r2.ebuild, diff --git a/gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild b/gnome-extra/evolution-data-server/evolution-data-server-3.6.2-r1.ebuild index aa4548937ecf..6ac79144060c 100644 --- a/gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild +++ b/gnome-extra/evolution-data-server/evolution-data-server-3.6.2-r1.ebuild @@ -1,71 +1,81 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild,v 1.5 2012/11/25 19:33:56 ulm Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-3.6.2-r1.ebuild,v 1.1 2012/12/19 05:51:46 tetromino Exp $ -EAPI="4" +EAPI="5" GCONF_DEBUG="no" GNOME2_LA_PUNT="yes" -VALA_MIN_API_VERSION="0.14" +VALA_MIN_API_VERSION="0.18" VALA_USE_DEPEND="vapigen" +# No PYTHON_DEPEND, python is only needed at build time -inherit autotools db-use eutils flag-o-matic gnome2 vala versionator virtualx +inherit db-use eutils flag-o-matic gnome2 python vala versionator virtualx DESCRIPTION="Evolution groupware backend" HOMEPAGE="http://projects.gnome.org/evolution/" +SRC_URI="${SRC_URI} + http://dev.gentoo.org/~tetromino/distfiles/${PN}/${P}-gentoo-patches.tar.xz" # Note: explicitly "|| ( LGPL-2 LGPL-3 )", not "LGPL-2+". LICENSE="|| ( LGPL-2 LGPL-3 ) BSD Sleepycat" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-solaris" -IUSE="+gnome-online-accounts +introspection ipv6 ldap kerberos vala +weather" - -# GNOME3: How do we slot libedataserverui-3.0.so? -# Also, libedata-cal-1.2.so and libecal-1.2.so use gtk-3, but aren't slotted -RDEPEND=">=dev-libs/glib-2.28:2 - >=x11-libs/gtk+-3.0:3 - >=gnome-base/gconf-2 - >=dev-db/sqlite-3.5 - >=dev-libs/libgdata-0.9.1 +SLOT="0/40" # subslot = libcamel-1.2 soname version +IUSE="api-doc-extras +gnome-online-accounts +introspection ipv6 ldap kerberos vala +weather" +REQUIRED_USE="vala? ( introspection )" + +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-solaris" + +RDEPEND=">=dev-libs/glib-2.32:2 + >=x11-libs/gtk+-3.2:3 + >=dev-db/sqlite-3.5:= + >=dev-libs/libgdata-0.10:= >=gnome-base/gnome-keyring-2.20.1 - >=dev-libs/libical-0.43 - >=net-libs/libsoup-2.31.2:2.4 + >=dev-libs/libical-0.43:= + >=net-libs/libsoup-2.38.1:2.4 >=dev-libs/libxml2-2 - >=dev-libs/nspr-4.4 - >=dev-libs/nss-3.9 - >=sys-libs/db-4 - sys-libs/zlib + >=sys-libs/db-4:= + >=dev-libs/nspr-4.4:= + >=dev-libs/nss-3.9:= + >=app-crypt/gcr-3.4 + + sys-libs/zlib:= virtual/libiconv + gnome-online-accounts? ( - >=net-libs/gnome-online-accounts-3.1.1 + >=net-libs/gnome-online-accounts-3.2 >=net-libs/liboauth-0.9.4 ) introspection? ( >=dev-libs/gobject-introspection-0.9.12 ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-2 ) - weather? ( >=dev-libs/libgweather-2.90.0:2 ) + kerberos? ( virtual/krb5:= ) + ldap? ( >=net-nds/openldap-2:= ) + weather? ( >=dev-libs/libgweather-3.5:2= ) " DEPEND="${RDEPEND} + =dev-lang/python-2* dev-util/fix-la-relink-command dev-util/gperf + >=dev-util/gtk-doc-am-1.9 >=dev-util/intltool-0.35.5 - sys-devel/bison >=gnome-base/gnome-common-2 - >=dev-util/gtk-doc-am-1.9 >=sys-devel/gettext-0.17 virtual/pkgconfig vala? ( $(vala_depend) )" # eautoreconf needs: # >=gnome-base/gnome-common-2 -REQUIRED_USE="vala? ( introspection )" - # FIXME RESTRICT="test" pkg_setup() { + python_set_active_version 2 + python_pkg_setup +} + +src_prepare() { DOCS="ChangeLog MAINTAINERS NEWS TODO" # Uh, what to do about dbus-call-timeout ? - # Fails to build with --disable-ssl; bug #392679, https://bugzilla.gnome.org/show_bug.cgi?id=642984 G2CONF="${G2CONF} + --disable-schemas-compile + $(use_enable api-doc-extras gtk-doc) + $(use_with api-doc-extras private-docs) $(use_enable gnome-online-accounts goa) $(use_enable introspection) $(use_enable ipv6) @@ -73,47 +83,25 @@ pkg_setup() { $(use_with ldap openldap) $(use_enable vala vala-bindings) $(use_enable weather) - --enable-calendar - --enable-largefile --enable-nntp - --enable-ssl + --enable-largefile --enable-smime --with-libdb=${EPREFIX}/usr" -} -src_prepare() { - # fix linking with glib-2.31, bug #395777 - epatch "${FILESDIR}/${PN}-3.2.2-gmodule-explicit.patch" - epatch "${FILESDIR}/${PN}-3.2.2-g_thread_init.patch" - # fix caldav quoting problems with libical-0.48, bug #405647 - epatch "${FILESDIR}/${P}-caldav-cannot-modify.patch" - # fix Google calendar event adding, bug #412829 - epatch "${FILESDIR}/${P}-google-calendar.patch" - - # Fix >=sys-devel/automake-1.12 compability wrt #420351 - sed -i \ - -e '/PROG_MKDIR_P/s:AM:AC:' \ - -e 's:mkdir_p:MKDIR_P:' \ - -e '/AM_INIT_AUTOMAKE/s:-Werror ::' \ - m4/po.m4 po/Makefile.in.in configure.ac || die - - eautoreconf + # Lots of crash and leak fixes, will be in 3.6.3 + epatch ../patches/*.patch gnome2_src_prepare use vala && vala_src_prepare - # GNOME bug 611353 (skips failing test atm) - # XXX: uncomment when there's a proper fix - #epatch "${FILESDIR}/e-d-s-camel-skip-failing-test.patch" - - # GNOME bug 621763 (skip failing test-ebook-stress-factory--fifo) - #sed -e 's/\(SUBDIRS =.*\)ebook/\1/' \ - # -i addressbook/tests/Makefile.{am,in} \ - # || die "failing test sed 1 failed" - # /usr/include/db.h is always db-1 on FreeBSD # so include the right dir in CPPFLAGS append-cppflags "-I$(db_includedir)" + + # FIXME: Fix compilation flags crazyness + # Touch configure.ac if doing eautoreconf + sed 's/^\(AM_CPPFLAGS="\)$WARNING_FLAGS/\1/' \ + -i configure || die "sed failed" } src_install() { diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-g_thread_init.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-g_thread_init.patch deleted file mode 100644 index 3c38715de93b..000000000000 --- a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-g_thread_init.patch +++ /dev/null @@ -1,162 +0,0 @@ -From d65649c665c129221a4510831eacb38f7a43a644 Mon Sep 17 00:00:00 2001 -From: Milan Crha <mcrha@redhat.com> -Date: Mon, 24 Oct 2011 09:42:17 +0200 -Subject: [PATCH] Call g_thread_init() conditionally - ---- - .../libedata-book/e-book-backend-sqlitedb-test.c | 2 ++ - calendar/backends/file/e-cal-backend-file.c | 2 ++ - camel/camel-index-control.c | 2 ++ - camel/camel-text-index.c | 2 ++ - camel/providers/imapx/test-imapx.c | 2 ++ - camel/tests/lib/camel-test.c | 2 ++ - tests/libebook/client/client-test-utils.c | 2 ++ - tests/libecal/client/client-test-utils.c | 2 ++ - tests/libedataserverui/test-client-examine-auth.c | 2 ++ - tests/libedataserverui/test-name-selector.c | 2 ++ - 10 files changed, 20 insertions(+), 0 deletions(-) - -diff --git a/addressbook/libedata-book/e-book-backend-sqlitedb-test.c b/addressbook/libedata-book/e-book-backend-sqlitedb-test.c -index df39af2..e887abb 100644 ---- a/addressbook/libedata-book/e-book-backend-sqlitedb-test.c -+++ b/addressbook/libedata-book/e-book-backend-sqlitedb-test.c -@@ -197,7 +197,9 @@ main (gint argc, - gchar *argv[]) - { - g_type_init (); -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - - if (argc != 2) { - g_print ("Please enter a path to store the cache \n"); -diff --git a/calendar/backends/file/e-cal-backend-file.c b/calendar/backends/file/e-cal-backend-file.c -index ba1fcf0..b2bee69 100644 ---- a/calendar/backends/file/e-cal-backend-file.c -+++ b/calendar/backends/file/e-cal-backend-file.c -@@ -3800,7 +3800,9 @@ main (gint argc, - FILE * fin = NULL; - - g_type_init (); -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - - context = g_option_context_new ("- test utility for e-d-s file backend"); - g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); -diff --git a/camel/camel-index-control.c b/camel/camel-index-control.c -index 87ae760..89ed82e 100644 ---- a/camel/camel-index-control.c -+++ b/camel/camel-index-control.c -@@ -127,7 +127,9 @@ gint main (gint argc, gchar **argv) - if (argc < 2) - do_usage (argv[0]); - -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - camel_init (NULL, 0); - - if (!strcmp(argv[1], "compress")) -diff --git a/camel/camel-text-index.c b/camel/camel-text-index.c -index 563a332..f5b69fe 100644 ---- a/camel/camel-text-index.c -+++ b/camel/camel-text-index.c -@@ -1862,7 +1862,9 @@ main (gint argc, - - printf ("Camel text index tester!\n"); - -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - camel_init (NULL, 0); - - idx = (CamelIndex *)camel_text_index_new ("textindex", O_CREAT|O_RDWR|O_TRUNC); -diff --git a/camel/providers/imapx/test-imapx.c b/camel/providers/imapx/test-imapx.c -index fe71d1c..de9a455 100644 ---- a/camel/providers/imapx/test-imapx.c -+++ b/camel/providers/imapx/test-imapx.c -@@ -36,7 +36,9 @@ main (gint argc, - } - - uri = argv[1]; -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - system ("rm -rf /tmp/test-camel-imapx"); - camel_init ("/tmp/test-camel-imapx", TRUE); - camel_provider_init (); -diff --git a/camel/tests/lib/camel-test.c b/camel/tests/lib/camel-test.c -index 16caf79..743c658 100644 ---- a/camel/tests/lib/camel-test.c -+++ b/camel/tests/lib/camel-test.c -@@ -103,8 +103,10 @@ camel_test_init (gint argc, - setup = 1; - - g_type_init (); -+ #if !GLIB_CHECK_VERSION(2,31,0) - /* yeah, we do need ot thread init, even though camel isn't compiled with enable threads */ - g_thread_init (NULL); -+ #endif - - path = g_strdup_printf ("/tmp/camel-test"); - if (mkdir (path, 0700) == -1 && errno != EEXIST) -diff --git a/tests/libebook/client/client-test-utils.c b/tests/libebook/client/client-test-utils.c -index 710ba25..f778333 100644 ---- a/tests/libebook/client/client-test-utils.c -+++ b/tests/libebook/client/client-test-utils.c -@@ -67,7 +67,9 @@ main_initialize (void) - return; - - g_type_init (); -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - - initialized = TRUE; - } -diff --git a/tests/libecal/client/client-test-utils.c b/tests/libecal/client/client-test-utils.c -index c6f7062..a39c994 100644 ---- a/tests/libecal/client/client-test-utils.c -+++ b/tests/libecal/client/client-test-utils.c -@@ -63,7 +63,9 @@ main_initialize (void) - return; - - g_type_init (); -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - - initialized = TRUE; - } -diff --git a/tests/libedataserverui/test-client-examine-auth.c b/tests/libedataserverui/test-client-examine-auth.c -index a02fb04..e94e33b 100644 ---- a/tests/libedataserverui/test-client-examine-auth.c -+++ b/tests/libedataserverui/test-client-examine-auth.c -@@ -413,7 +413,9 @@ main (gint argc, - gchar **argv) - { - g_type_init (); -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - gtk_init (&argc, &argv); - - e_passwords_init (); -diff --git a/tests/libedataserverui/test-name-selector.c b/tests/libedataserverui/test-name-selector.c -index 3173382..bab8e4c 100644 ---- a/tests/libedataserverui/test-name-selector.c -+++ b/tests/libedataserverui/test-name-selector.c -@@ -81,7 +81,9 @@ main (gint argc, - gchar **argv) - { - gtk_init (&argc, &argv); -+ #if !GLIB_CHECK_VERSION(2,31,0) - g_thread_init (NULL); -+ #endif - - camel_init (NULL, 0); - --- -1.7.8.2 - diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch deleted file mode 100644 index b9fc9c0294f0..000000000000 --- a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 46169b9f411850a6605c34bb1a35dadf27e15dca Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Diego=20L=C3=B3pez=20Le=C3=B3n?= <dieguitoll@gmail.com> -Date: Tue, 29 Nov 2011 19:34:12 -0600 -Subject: [PATCH] Bug 664819 - gmodule-2.0 dependency must be explicit - ---- - configure.ac | 7 ++++--- - 1 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index b325283..b538251 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -334,6 +334,7 @@ dnl Check for base dependencies early. - dnl *********************************** - PKG_CHECK_MODULES(GNOME_PLATFORM, - [gio-2.0 >= glib_minimum_version -+ gmodule-2.0 >= glib_minimum_version - gtk+-3.0 >= gtk_minimum_version - gconf-2.0 >= gconf_minimum_version - libxml-2.0 >= libxml_minimum_version -@@ -1272,7 +1273,7 @@ PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version]) - dnl ****************************** - dnl libedataserver flags - dnl ****************************** --E_DATA_SERVER_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 gconf-2.0 $mozilla_nspr" -+E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libxml-2.0 libsoup-2.4 gconf-2.0 $mozilla_nspr" - - EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS) - AC_SUBST(E_DATA_SERVER_CFLAGS) -@@ -1294,7 +1295,7 @@ if test "x$enable_maintainer_mode" = "xyes" ; then - AC_SUBST(FACTORY_GTK_LIBS) - fi - --E_BACKEND_DEPS="gio-2.0 libxml-2.0 gconf-2.0" -+E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libxml-2.0 gconf-2.0" - - dnl ****************************** - dnl libebackend flags -@@ -1437,7 +1438,7 @@ fi - - AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"]) - --EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 $mozilla_nss sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS) -+EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 gmodule-2.0 $mozilla_nss sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS) - AC_SUBST(CAMEL_CFLAGS) - AC_SUBST(CAMEL_LIBS) - --- -1.7.8.1 - diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-caldav-cannot-modify.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-caldav-cannot-modify.patch deleted file mode 100644 index 47a7ed8b1e0e..000000000000 --- a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-caldav-cannot-modify.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 830fa86226aa2c4fd0687aef605c93920888e3c4 -Author: Milan Crha <mcrha@redhat.com> -Date: Mon Jan 30 19:25:41 2012 +0100 - - Bug #669003 - CalDAV: Cannot modify calendar object (libical 0.48) - -diff --git a/calendar/backends/caldav/e-cal-backend-caldav.c b/calendar/backends/caldav/e-cal-backend-caldav.c -index 694e64a..50cece5 100644 ---- a/calendar/backends/caldav/e-cal-backend-caldav.c -+++ b/calendar/backends/caldav/e-cal-backend-caldav.c -@@ -422,6 +422,24 @@ ecalcomp_get_etag (ECalComponent *comp) - - str = icomp_x_prop_get (icomp, X_E_CALDAV "ETAG"); - -+ /* libical 0.48 escapes quotes, thus unescape them */ -+ if (str && strchr (str, '\\')) { -+ gint ii, jj; -+ -+ for (ii = 0, jj = 0; str[ii]; ii++) { -+ if (str[ii] == '\\') { -+ ii++; -+ if (!str[ii]) -+ break; -+ } -+ -+ str[jj] = str[ii]; -+ jj++; -+ } -+ -+ str[jj] = 0; -+ } -+ - return str; - } - diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch deleted file mode 100644 index f59e31f2fdc7..000000000000 --- a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch +++ /dev/null @@ -1,138 +0,0 @@ -From a5af0816154ac498cc231b0a61c905d3646e64f9 Mon Sep 17 00:00:00 2001 -From: Milan Crha <mcrha@redhat.com> -Date: Thu, 12 Apr 2012 14:52:21 +0200 -Subject: [PATCH] Bug #673894 - Adding events to Google Calendar is broken - -[Alexandre Rostovtsev <tetromino@gentoo.org>: backport to 3.2] ---- - calendar/backends/caldav/e-cal-backend-caldav.c | 83 +++++++++++++++++++++- - 1 files changed, 79 insertions(+), 4 deletions(-) - -diff --git a/calendar/backends/caldav/e-cal-backend-caldav.c b/calendar/backends/caldav/e-cal-backend-caldav.c -index 12f8f22..7212e4f 100644 ---- a/calendar/backends/caldav/e-cal-backend-caldav.c -+++ b/calendar/backends/caldav/e-cal-backend-caldav.c -@@ -314,6 +314,18 @@ static gboolean put_comp_to_cache (ECalBackendCalDAV *cbdav, icalcomponent *ical - #define X_E_CALDAV_ATTACHMENT_NAME X_E_CALDAV "ATTACHMENT-NAME" - - static void -+update_slave_cmd (ECalBackendCalDAVPrivate *priv, -+ SlaveCommand slave_cmd) -+{ -+ g_return_if_fail (priv != NULL); -+ -+ if (priv->slave_cmd == SLAVE_SHOULD_DIE) -+ return; -+ -+ priv->slave_cmd = slave_cmd; -+} -+ -+static void - icomp_x_prop_set (icalcomponent *comp, - const gchar *key, - const gchar *value) -@@ -1517,6 +1529,41 @@ caldav_post_freebusy (ECalBackendCalDAV *cbdav, - g_object_unref (message); - } - -+static gchar * -+caldav_gen_file_from_uid_cal (ECalBackendCalDAV *cbdav, -+ icalcomponent *icalcomp) -+{ -+ icalcomponent_kind my_kind; -+ const gchar *uid = NULL; -+ gchar *filename, *res; -+ -+ g_return_val_if_fail (cbdav != NULL, NULL); -+ g_return_val_if_fail (icalcomp != NULL, NULL); -+ -+ my_kind = e_cal_backend_get_kind (E_CAL_BACKEND (cbdav)); -+ if (icalcomponent_isa (icalcomp) == ICAL_VCALENDAR_COMPONENT) { -+ icalcomponent *subcomp; -+ -+ for (subcomp = icalcomponent_get_first_component (icalcomp, my_kind); -+ subcomp; -+ subcomp = icalcomponent_get_next_component (icalcomp, my_kind)) { -+ uid = icalcomponent_get_uid (subcomp); -+ break; -+ } -+ } else if (icalcomponent_isa (icalcomp) == my_kind) { -+ uid = icalcomponent_get_uid (icalcomp); -+ } -+ -+ if (!uid) -+ return NULL; -+ -+ filename = g_strconcat (uid, ".ics", NULL); -+ res = soup_uri_encode (filename, NULL); -+ g_free (filename); -+ -+ return res; -+} -+ - static gboolean - caldav_server_put_object (ECalBackendCalDAV *cbdav, - CalDAVObject *object, -@@ -1583,7 +1630,7 @@ caldav_server_put_object (ECalBackendCalDAV *cbdav, - } - - if (status_code_to_result (message, priv, perror)) { -- gboolean was_get = FALSE; -+ GError *local_error = NULL; - - hdr = soup_message_headers_get (message->response_headers, "ETag"); - if (hdr != NULL) { -@@ -1609,12 +1656,38 @@ caldav_server_put_object (ECalBackendCalDAV *cbdav, - } - } - -- was_get = TRUE; -+ if (!caldav_server_get_object (cbdav, object, &local_error)) { -+ if (g_error_matches (local_error, E_DATA_CAL_ERROR, NoSuchCal)) { -+ gchar *file; -+ -+ /* OK, the event was properly created, but cannot be found on the place -+ where it was PUT - why didn't server tell us where it saved it? */ -+ g_clear_error (&local_error); -+ -+ /* try whether it's saved as its UID.ics file */ -+ file = caldav_gen_file_from_uid_cal (cbdav, icalcomp); -+ if (file) { -+ g_free (object->href); -+ object->href = file; -+ -+ if (!caldav_server_get_object (cbdav, object, &local_error)) { -+ if (g_error_matches (local_error, E_DATA_CAL_ERROR, NoSuchCal)) { -+ g_clear_error (&local_error); -+ -+ /* not sure what can happen, but do not need to guess for ever, -+ thus report success and update the calendar to get fresh info */ -+ update_slave_cmd (cbdav->priv, SLAVE_SHOULD_WORK); -+ g_cond_signal (cbdav->priv->cond); -+ } -+ } -+ } -+ } -+ } - -- if (caldav_server_get_object (cbdav, object, perror)) { -+ if (!local_error) { - icalcomponent *use_comp = NULL; - -- if (object->cdata && was_get) { -+ if (object->cdata) { - /* maybe server also modified component, thus rather store the server's */ - use_comp = icalparser_parse_string (object->cdata); - } -@@ -1626,6 +1699,8 @@ caldav_server_put_object (ECalBackendCalDAV *cbdav, - - if (use_comp != icalcomp) - icalcomponent_free (use_comp); -+ } else { -+ g_propagate_error (perror, local_error); - } - } else if (message->status_code == 401) { - caldav_notify_auth_required (cbdav); --- -1.7.8.6 - diff --git a/gnome-extra/evolution-data-server/metadata.xml b/gnome-extra/evolution-data-server/metadata.xml index 31ddbb5a86e3..db353b52bbbf 100644 --- a/gnome-extra/evolution-data-server/metadata.xml +++ b/gnome-extra/evolution-data-server/metadata.xml @@ -3,10 +3,9 @@ <pkgmetadata> <herd>gnome</herd> <use> + <flag name="api-doc-extras">Build documentation for private APIs</flag> <flag name="gnome-online-accounts">Enable using <pkg>net-libs/gnome-online-accounts</pkg> for authorization</flag> - <flag name="introspection">Use <pkg>dev-libs/gobject-introspection</pkg> - for introspection</flag> <flag name="vala">Build <pkg>dev-lang/vala</pkg> bindings</flag> <flag name="weather">Enable optional weather calendar support</flag> </use> |