--- addressbook/backends/file/e-book-backend-file.c	2013-02-26 14:58:36 +0000
+++ addressbook/backends/file/e-book-backend-file.c	2013-12-27 10:46:12 +0000
@@ -453,7 +453,25 @@
 
 		i++;
 
+#ifndef G_OS_WIN32
 		ret = link (src_filename, fullname);
+#else
+		GFile *src_file = g_file_new_for_path (src_filename);
+		GFile *dst_file = g_file_new_for_path (fullname);
+		GError *copy_error = NULL;
+
+		g_file_copy (src_file, dst_file, G_FILE_COPY_NONE,
+		             NULL, NULL, NULL, &copy_error);
+
+		if (copy_error != NULL) {
+			g_error_free (copy_error);
+			ret = -1;
+		} else
+			ret = 0;
+
+		g_object_unref (src_file);
+		g_object_unref (dst_file);
+#endif
 
 	} while (ret < 0 && errno == EEXIST);
 
--- addressbook/backends/google/e-book-backend-google.c	2013-02-26 14:58:36 +0000
+++ addressbook/backends/google/e-book-backend-google.c	2013-12-27 06:41:36 +0000
@@ -48,7 +48,7 @@
 
 /* Forward Declarations */
 static void	e_book_backend_google_source_authenticator_init
-				(ESourceAuthenticatorInterface *interface);
+				(ESourceAuthenticatorInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	EBookBackendGoogle,
@@ -2279,9 +2279,9 @@
 }
 
 static void
-e_book_backend_google_source_authenticator_init (ESourceAuthenticatorInterface *interface)
+e_book_backend_google_source_authenticator_init (ESourceAuthenticatorInterface *interf)
 {
-	interface->try_password_sync = book_backend_google_try_password_sync;
+	interf->try_password_sync = book_backend_google_try_password_sync;
 }
 
 static void
--- addressbook/backends/ldap/e-source-ldap.c	2013-02-26 14:58:36 +0000
+++ addressbook/backends/ldap/e-source-ldap.c	2013-12-27 06:34:25 +0000
@@ -18,7 +18,12 @@
 
 #include "e-source-ldap.h"
 
+#ifndef G_OS_WIN32
 #include <ldap.h>
+#else
+#include <windows.h>
+#include <winldap.h>
+#endif
 
 #define E_SOURCE_LDAP_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
--- addressbook/backends/webdav/e-book-backend-webdav.c	2013-03-06 19:31:09 +0000
+++ addressbook/backends/webdav/e-book-backend-webdav.c	2013-12-27 06:45:15 +0000
@@ -54,7 +54,7 @@
 
 /* Forward Declarations */
 static void	e_book_backend_webdav_source_authenticator_init
-				(ESourceAuthenticatorInterface *interface);
+				(ESourceAuthenticatorInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	EBookBackendWebdav,
@@ -1575,9 +1575,9 @@
 }
 
 static void
-e_book_backend_webdav_source_authenticator_init (ESourceAuthenticatorInterface *interface)
+e_book_backend_webdav_source_authenticator_init (ESourceAuthenticatorInterface *interf)
 {
-	interface->try_password_sync = book_backend_webdav_try_password_sync;
+	interf->try_password_sync = book_backend_webdav_try_password_sync;
 }
 
 static void
--- addressbook/libebook/e-contact.c	2013-02-26 14:58:36 +0000
+++ addressbook/libebook/e-contact.c	2013-12-27 05:28:30 +0000
@@ -34,7 +34,7 @@
 #include "e-name-western.h"
 
 #ifdef G_OS_WIN32
-#include "libedataserver/e-data-server-util.h"
+#include "libedataserver/libedataserver.h"
 #undef LOCALEDIR
 #define LOCALEDIR e_util_get_localedir ()
 #endif
--- addressbook/libedata-book/e-data-book-factory.c	2013-02-26 14:58:36 +0000
+++ addressbook/libedata-book/e-data-book-factory.c	2013-12-27 05:31:22 +0000
@@ -69,7 +69,7 @@
 
 /* Forward Declarations */
 static void	e_data_book_factory_initable_init
-						(GInitableIface *interface);
+						(GInitableIface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	EDataBookFactory,
@@ -601,9 +601,9 @@
 }
 
 static void
-e_data_book_factory_initable_init (GInitableIface *interface)
+e_data_book_factory_initable_init (GInitableIface *interf)
 {
-	interface->init = data_book_factory_initable_init;
+	interf->init = data_book_factory_initable_init;
 }
 
 static void
--- calendar/backends/caldav/e-cal-backend-caldav.c	2013-02-26 14:58:36 +0000
+++ calendar/backends/caldav/e-cal-backend-caldav.c	2013-12-27 07:11:34 +0000
@@ -5103,9 +5103,9 @@
 }
 
 static void
-caldav_source_authenticator_init (ESourceAuthenticatorInterface *interface)
+caldav_source_authenticator_init (ESourceAuthenticatorInterface *interf)
 {
-	interface->try_password_sync = caldav_try_password_sync;
+	interf->try_password_sync = caldav_try_password_sync;
 }
 
 /* ************************************************************************* */
--- calendar/backends/http/e-cal-backend-http.c	2013-02-26 14:58:36 +0000
+++ calendar/backends/http/e-cal-backend-http.c	2013-12-27 06:54:57 +0000
@@ -38,7 +38,7 @@
 
 /* Forward Declarations */
 static void	e_cal_backend_http_source_authenticator_init
-				(ESourceAuthenticatorInterface *interface);
+				(ESourceAuthenticatorInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	ECalBackendHttp,
@@ -1520,8 +1520,8 @@
 }
 
 static void
-e_cal_backend_http_source_authenticator_init (ESourceAuthenticatorInterface *interface)
+e_cal_backend_http_source_authenticator_init (ESourceAuthenticatorInterface *interf)
 {
-	interface->try_password_sync = cal_backend_http_try_password_sync;
+	interf->try_password_sync = cal_backend_http_try_password_sync;
 }
 
--- calendar/libedata-cal/e-data-cal-factory.c	2013-02-26 14:58:36 +0000
+++ calendar/libedata-cal/e-data-cal-factory.c	2013-12-27 06:50:10 +0000
@@ -65,7 +65,7 @@
 
 /* Forward Declarations */
 static void	e_data_cal_factory_initable_init
-						(GInitableIface *interface);
+						(GInitableIface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	EDataCalFactory,
@@ -499,9 +499,9 @@
 }
 
 static void
-e_data_cal_factory_initable_init (GInitableIface *interface)
+e_data_cal_factory_initable_init (GInitableIface *interf)
 {
-	interface->init = data_cal_factory_initable_init;
+	interf->init = data_cal_factory_initable_init;
 }
 
 static void
--- camel/camel-imapx-store.c	2013-02-26 14:58:36 +0000
+++ camel/camel-imapx-store.c	2013-11-24 21:40:26 +0000
@@ -55,9 +55,9 @@
 static GInitableIface *parent_initable_interface;
 
 /* Forward Declarations */
-static void camel_imapx_store_initable_init (GInitableIface *interface);
-static void camel_network_service_init (CamelNetworkServiceInterface *interface);
-static void camel_subscribable_init (CamelSubscribableInterface *interface);
+static void camel_imapx_store_initable_init (GInitableIface *interf);
+static void camel_network_service_init (CamelNetworkServiceInterface *interf);
+static void camel_subscribable_init (CamelSubscribableInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	CamelIMAPXStore,
@@ -1798,26 +1798,26 @@
 }
 
 static void
-camel_imapx_store_initable_init (GInitableIface *interface)
+camel_imapx_store_initable_init (GInitableIface *interf)
 {
-	parent_initable_interface = g_type_interface_peek_parent (interface);
+	parent_initable_interface = g_type_interface_peek_parent (interf);
 
-	interface->init = imapx_store_initable_init;
+	interf->init = imapx_store_initable_init;
 }
 
 static void
-camel_network_service_init (CamelNetworkServiceInterface *interface)
+camel_network_service_init (CamelNetworkServiceInterface *interf)
 {
-	interface->get_service_name = imapx_store_get_service_name;
-	interface->get_default_port = imapx_store_get_default_port;
+	interf->get_service_name = imapx_store_get_service_name;
+	interf->get_default_port = imapx_store_get_default_port;
 }
 
 static void
-camel_subscribable_init (CamelSubscribableInterface *interface)
+camel_subscribable_init (CamelSubscribableInterface *interf)
 {
-	interface->folder_is_subscribed = imapx_store_folder_is_subscribed;
-	interface->subscribe_folder_sync = imapx_store_subscribe_folder_sync;
-	interface->unsubscribe_folder_sync = imapx_store_unsubscribe_folder_sync;
+	interf->folder_is_subscribed = imapx_store_folder_is_subscribed;
+	interf->subscribe_folder_sync = imapx_store_subscribe_folder_sync;
+	interf->unsubscribe_folder_sync = imapx_store_unsubscribe_folder_sync;
 }
 
 static void
--- camel/camel-win32.c	2013-02-26 14:58:36 +0000
+++ camel/camel-win32.c	2013-11-24 22:18:41 +0000
@@ -83,11 +83,11 @@
 	}
 
 	localedir = replace_prefix (
-		E_DATA_SERVER_PREFIX, get_cp_prefix (), LOCALEDIR);
+		E_DATA_SERVER_PREFIX, "", LOCALEDIR);
 	libexecdir = replace_prefix (
-		E_DATA_SERVER_PREFIX, get_prefix (), CAMEL_LIBEXECDIR);
+		E_DATA_SERVER_PREFIX, "", CAMEL_LIBEXECDIR);
 	providerdir = replace_prefix (
-		E_DATA_SERVER_PREFIX, get_prefix (), CAMEL_PROVIDERDIR);
+		E_DATA_SERVER_PREFIX, "", CAMEL_PROVIDERDIR);
 
 	G_UNLOCK (mutex);
 }
--- camel/providers/imap/camel-imap-store.c	2013-02-26 14:58:36 +0000
+++ camel/providers/imap/camel-imap-store.c	2013-11-24 22:52:05 +0000
@@ -116,9 +116,9 @@
 static GInitableIface *parent_initable_interface;
 
 /* Forward Declarations */
-static void camel_imap_store_initable_init (GInitableIface *interface);
-static void camel_network_service_init (CamelNetworkServiceInterface *interface);
-static void camel_subscribable_init (CamelSubscribableInterface *interface);
+static void camel_imap_store_initable_init (GInitableIface *interf);
+static void camel_network_service_init (CamelNetworkServiceInterface *interf);
+static void camel_subscribable_init (CamelSubscribableInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	CamelImapStore,
@@ -1542,26 +1542,26 @@
 }
 
 static void
-camel_imap_store_initable_init (GInitableIface *interface)
+camel_imap_store_initable_init (GInitableIface *interf)
 {
-	parent_initable_interface = g_type_interface_peek_parent (interface);
+	parent_initable_interface = g_type_interface_peek_parent (interf);
 
-	interface->init = imap_store_initable_init;
+	interf->init = imap_store_initable_init;
 }
 
 static void
-camel_network_service_init (CamelNetworkServiceInterface *interface)
+camel_network_service_init (CamelNetworkServiceInterface *interf)
 {
-	interface->get_service_name = imap_store_get_service_name;
-	interface->get_default_port = imap_store_get_default_port;
+	interf->get_service_name = imap_store_get_service_name;
+	interf->get_default_port = imap_store_get_default_port;
 }
 
 static void
-camel_subscribable_init (CamelSubscribableInterface *interface)
+camel_subscribable_init (CamelSubscribableInterface *interf)
 {
-	interface->folder_is_subscribed = imap_store_folder_is_subscribed;
-	interface->subscribe_folder_sync = imap_store_subscribe_folder_sync;
-	interface->unsubscribe_folder_sync = imap_store_unsubscribe_folder_sync;
+	interf->folder_is_subscribed = imap_store_folder_is_subscribed;
+	interf->subscribe_folder_sync = imap_store_subscribe_folder_sync;
+	interf->unsubscribe_folder_sync = imap_store_unsubscribe_folder_sync;
 }
 
 static void
--- camel/providers/pop3/camel-pop3-store.c	2013-02-26 14:58:36 +0000
+++ camel/providers/pop3/camel-pop3-store.c	2013-11-24 22:46:03 +0000
@@ -56,7 +56,7 @@
 extern CamelServiceAuthType camel_pop3_apop_authtype;
 
 /* Forward Declarations */
-static void camel_network_service_init (CamelNetworkServiceInterface *interface);
+static void camel_network_service_init (CamelNetworkServiceInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	CamelPOP3Store,
@@ -811,10 +811,10 @@
 }
 
 static void
-camel_network_service_init (CamelNetworkServiceInterface *interface)
+camel_network_service_init (CamelNetworkServiceInterface *interf)
 {
-	interface->get_service_name = pop3_store_get_service_name;
-	interface->get_default_port = pop3_store_get_default_port;
+	interf->get_service_name = pop3_store_get_service_name;
+	interf->get_default_port = pop3_store_get_default_port;
 }
 
 static void
--- camel/providers/smtp/camel-smtp-transport.c	2013-02-26 14:58:36 +0000
+++ camel/providers/smtp/camel-smtp-transport.c	2013-11-24 22:48:49 +0000
@@ -85,7 +85,7 @@
 						 GError **error);
 
 /* Forward Declarations */
-static void camel_network_service_init (CamelNetworkServiceInterface *interface);
+static void camel_network_service_init (CamelNetworkServiceInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	CamelSmtpTransport,
@@ -784,10 +784,10 @@
 }
 
 static void
-camel_network_service_init (CamelNetworkServiceInterface *interface)
+camel_network_service_init (CamelNetworkServiceInterface *interf)
 {
-	interface->get_service_name = smtp_transport_get_service_name;
-	interface->get_default_port = smtp_transport_get_default_port;
+	interf->get_service_name = smtp_transport_get_service_name;
+	interf->get_default_port = smtp_transport_get_default_port;
 }
 
 static void
--- libebackend/e-authentication-mediator.c	2013-02-26 14:58:36 +0000
+++ libebackend/e-authentication-mediator.c	2013-12-27 04:43:22 +0000
@@ -54,7 +54,7 @@
 
 struct _EAuthenticationMediatorPrivate {
 	GDBusConnection *connection;
-	EDBusAuthenticator *interface;
+	EDBusAuthenticator *interf;
 	GcrSecretExchange *secret_exchange;
 	gchar *object_path;
 	gchar *sender;
@@ -103,9 +103,9 @@
 
 /* Forward Declarations */
 static void	e_authentication_mediator_initable_init
-				(GInitableIface *interface);
+				(GInitableIface *interf);
 static void	e_authentication_mediator_interface_init
-				(ESourceAuthenticatorInterface *interface);
+				(ESourceAuthenticatorInterface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	EAuthenticationMediator,
@@ -272,7 +272,7 @@
 }
 
 static gboolean
-authentication_mediator_handle_ready (EDBusAuthenticator *interface,
+authentication_mediator_handle_ready (EDBusAuthenticator *interf,
                                       GDBusMethodInvocation *invocation,
                                       const gchar *encrypted_key,
                                       ThreadClosure *closure)
@@ -302,7 +302,7 @@
 
 	g_mutex_unlock (mediator->priv->shared_data_lock);
 
-	e_dbus_authenticator_complete_ready (interface, invocation);
+	e_dbus_authenticator_complete_ready (interf, invocation);
 
 	g_object_unref (mediator);
 
@@ -310,7 +310,7 @@
 }
 
 static gboolean
-authentication_mediator_handle_cancel (EDBusAuthenticator *interface,
+authentication_mediator_handle_cancel (EDBusAuthenticator *interf,
                                        GDBusMethodInvocation *invocation,
                                        ThreadClosure *closure)
 {
@@ -349,7 +349,7 @@
 
 	g_mutex_unlock (mediator->priv->shared_data_lock);
 
-	e_dbus_authenticator_complete_cancel (interface, invocation);
+	e_dbus_authenticator_complete_cancel (interf, invocation);
 
 	g_object_unref (mediator);
 
@@ -357,7 +357,7 @@
 }
 
 static gboolean
-authentication_mediator_handle_accepted (EDBusAuthenticator *interface,
+authentication_mediator_handle_accepted (EDBusAuthenticator *interf,
                                          GDBusMethodInvocation *invocation,
                                          ThreadClosure *closure)
 {
@@ -383,7 +383,7 @@
 
 	g_mutex_unlock (mediator->priv->shared_data_lock);
 
-	e_dbus_authenticator_complete_accepted (interface, invocation);
+	e_dbus_authenticator_complete_accepted (interf, invocation);
 
 	g_object_unref (mediator);
 
@@ -391,7 +391,7 @@
 }
 
 static gboolean
-authentication_mediator_handle_rejected (EDBusAuthenticator *interface,
+authentication_mediator_handle_rejected (EDBusAuthenticator *interf,
                                          GDBusMethodInvocation *invocation,
                                          ThreadClosure *closure)
 {
@@ -420,7 +420,7 @@
 
 	g_mutex_unlock (mediator->priv->shared_data_lock);
 
-	e_dbus_authenticator_complete_rejected (interface, invocation);
+	e_dbus_authenticator_complete_rejected (interf, invocation);
 
 	g_object_unref (mediator);
 
@@ -443,7 +443,7 @@
 authentication_mediator_authenticator_thread (gpointer data)
 {
 	EAuthenticationMediator *mediator;
-	GDBusInterfaceSkeleton *interface;
+	GDBusInterfaceSkeleton *interf;
 	GDBusConnection *connection;
 	ThreadClosure *closure = data;
 	GSource *idle_source;
@@ -466,7 +466,7 @@
 
 	/* Keep our own reference to the GDBusInterfaceSkeleton so
 	 * we can clean up signals after the mediator is disposed. */
-	interface = g_object_ref (mediator->priv->interface);
+	interf = g_object_ref (mediator->priv->interf);
 
 	connection = e_authentication_mediator_get_connection (mediator);
 	object_path = e_authentication_mediator_get_object_path (mediator);
@@ -481,25 +481,25 @@
 	/* Listen for method invocations. */
 
 	handle_ready_id = g_signal_connect_data (
-		interface, "handle-ready",
+		interf, "handle-ready",
 		G_CALLBACK (authentication_mediator_handle_ready),
 		thread_closure_ref (closure),
 		(GClosureNotify) thread_closure_unref, 0);
 
 	handle_cancel_id = g_signal_connect_data (
-		interface, "handle-cancel",
+		interf, "handle-cancel",
 		G_CALLBACK (authentication_mediator_handle_cancel),
 		thread_closure_ref (closure),
 		(GClosureNotify) thread_closure_unref, 0);
 
 	handle_accepted_id = g_signal_connect_data (
-		interface, "handle-accepted",
+		interf, "handle-accepted",
 		G_CALLBACK (authentication_mediator_handle_accepted),
 		thread_closure_ref (closure),
 		(GClosureNotify) thread_closure_unref, 0);
 
 	handle_rejected_id = g_signal_connect_data (
-		interface, "handle-rejected",
+		interf, "handle-rejected",
 		G_CALLBACK (authentication_mediator_handle_rejected),
 		thread_closure_ref (closure),
 		(GClosureNotify) thread_closure_unref, 0);
@@ -507,7 +507,7 @@
 	/* Export the Authenticator interface. */
 
 	g_dbus_interface_skeleton_export (
-		interface, connection, object_path, &closure->export_error);
+		interf, connection, object_path, &closure->export_error);
 
 	/* Schedule a one-time idle callback to broadcast through a
 	 * condition variable that our main loop is up and running. */
@@ -531,14 +531,14 @@
 
 	/* Clean up and exit. */
 
-	g_signal_handler_disconnect (interface, handle_ready_id);
-	g_signal_handler_disconnect (interface, handle_cancel_id);
-	g_signal_handler_disconnect (interface, handle_accepted_id);
-	g_signal_handler_disconnect (interface, handle_rejected_id);
+	g_signal_handler_disconnect (interf, handle_ready_id);
+	g_signal_handler_disconnect (interf, handle_cancel_id);
+	g_signal_handler_disconnect (interf, handle_accepted_id);
+	g_signal_handler_disconnect (interf, handle_rejected_id);
 
 	g_main_context_pop_thread_default (closure->main_context);
 
-	g_object_unref (interface);
+	g_object_unref (interf);
 
 	thread_closure_unref (closure);
 
@@ -656,9 +656,9 @@
 		priv->connection = NULL;
 	}
 
-	if (priv->interface != NULL) {
-		g_object_unref (priv->interface);
-		priv->interface = NULL;
+	if (priv->interf != NULL) {
+		g_object_unref (priv->interf);
+		priv->interf = NULL;
 	}
 
 	if (priv->secret_exchange != NULL) {
@@ -860,7 +860,7 @@
 			mediator->priv->secret_exchange, password->str, -1);
 
 		e_dbus_authenticator_emit_authenticate (
-			mediator->priv->interface, encrypted_secret);
+			mediator->priv->interf, encrypted_secret);
 
 		g_free (encrypted_secret);
 	}
@@ -948,17 +948,17 @@
 }
 
 static void
-e_authentication_mediator_initable_init (GInitableIface *interface)
+e_authentication_mediator_initable_init (GInitableIface *interf)
 {
-	interface->init = authentication_mediator_initable_init;
+	interf->init = authentication_mediator_initable_init;
 }
 
 static void
-e_authentication_mediator_interface_init (ESourceAuthenticatorInterface *interface)
+e_authentication_mediator_interface_init (ESourceAuthenticatorInterface *interf)
 {
-	interface->try_password_sync = authentication_mediator_try_password_sync;
-	interface->try_password = authentication_mediator_try_password;
-	interface->try_password_finish = authentication_mediator_try_password_finish;
+	interf->try_password_sync = authentication_mediator_try_password_sync;
+	interf->try_password = authentication_mediator_try_password;
+	interf->try_password_finish = authentication_mediator_try_password_finish;
 }
 
 static void
@@ -966,7 +966,7 @@
 {
 	mediator->priv = E_AUTHENTICATION_MEDIATOR_GET_PRIVATE (mediator);
 
-	mediator->priv->interface = e_dbus_authenticator_skeleton_new ();
+	mediator->priv->interf = e_dbus_authenticator_skeleton_new ();
 	mediator->priv->secret_exchange = gcr_secret_exchange_new (NULL);
 
 	mediator->priv->shared_data_lock = g_mutex_new ();
@@ -1241,6 +1241,6 @@
 {
 	g_return_if_fail (E_IS_AUTHENTICATION_MEDIATOR (mediator));
 
-	e_dbus_authenticator_emit_dismissed (mediator->priv->interface);
+	e_dbus_authenticator_emit_dismissed (mediator->priv->interf);
 }
 
--- libebackend/e-authentication-session.c	2013-02-26 14:58:36 +0000
+++ libebackend/e-authentication-session.c	2013-12-27 05:16:40 +0000
@@ -102,6 +102,7 @@
 	PROP_SOURCE_UID
 };
 
+#ifdef HAVE_GNOME_KEYRING
 static GnomeKeyringPasswordSchema schema = {
 	GNOME_KEYRING_ITEM_GENERIC_SECRET,
 	{
@@ -110,6 +111,7 @@
 		{ NULL, 0 }
 	}
 };
+#endif
 
 /* Forward Declarations */
 static void	authentication_session_msg
@@ -122,7 +124,9 @@
 	e_authentication_session,
 	G_TYPE_OBJECT)
 
+#ifdef HAVE_GNOME_KEYRING
 G_LOCK_DEFINE_STATIC (gnome_keyring);
+#endif
 
 static void
 async_context_free (AsyncContext *async_context)
@@ -1323,8 +1327,10 @@
                                               GCancellable *cancellable,
                                               GError **error)
 {
+#ifdef HAVE_GNOME_KEYRING
 	GnomeKeyringResult result;
 	const gchar *keyring;
+#endif
 	const gchar *uid;
 	gchar *display_name;
 
@@ -1337,14 +1343,17 @@
 	if (g_cancellable_set_error_if_cancelled (cancellable, error))
 		return FALSE;
 
+#ifdef HAVE_GNOME_KEYRING
 	if (permanently)
 		keyring = GNOME_KEYRING_DEFAULT;
 	else
 		keyring = GNOME_KEYRING_SESSION;
+#endif
 
 	uid = e_authentication_session_get_source_uid (session);
 	display_name = g_strdup_printf (KEYRING_ITEM_DISPLAY_FORMAT, uid);
 
+#ifdef HAVE_GNOME_KEYRING
 	G_LOCK (gnome_keyring);
 
 	result = gnome_keyring_store_password_sync (
@@ -1364,10 +1373,19 @@
 	}
 
 	G_UNLOCK (gnome_keyring);
+#else
+	g_set_error_literal (
+		error, E_AUTHENTICATION_SESSION_KEYRING_ERROR,
+		FALSE, "Keyring not supported on this platform");
+#endif
 
 	g_free (display_name);
 
+#ifdef HAVE_GNOME_KEYRING
 	return (result == GNOME_KEYRING_RESULT_OK);
+#else
+	return FALSE;
+#endif
 }
 
 /**
@@ -1502,7 +1520,9 @@
                                                gchar **password,
                                                GError **error)
 {
+#ifdef HAVE_GNOME_KEYRING
 	GnomeKeyringResult result;
+#endif
 	const gchar *uid;
 	gchar *temp = NULL;
 
@@ -1516,6 +1536,7 @@
 
 	uid = e_authentication_session_get_source_uid (session);
 
+#ifdef HAVE_GNOME_KEYRING
 	G_LOCK (gnome_keyring);
 
 	result = gnome_keyring_find_password_sync (
@@ -1551,8 +1572,17 @@
 		gnome_keyring_free_password (temp);
 
 	G_UNLOCK (gnome_keyring);
+#else
+	g_set_error_literal (
+		error, E_AUTHENTICATION_SESSION_KEYRING_ERROR,
+		FALSE, "Keyring not supported on this platform");
+#endif
 
+#ifdef HAVE_GNOME_KEYRING
 	return (result == GNOME_KEYRING_RESULT_OK);
+#else
+	return FALSE;
+#endif
 }
 
 /**
@@ -1688,7 +1718,9 @@
                                                GCancellable *cancellable,
                                                GError **error)
 {
+#ifdef HAVE_GNOME_KEYRING
 	GnomeKeyringResult result;
+#endif
 	const gchar *uid;
 
 	g_return_val_if_fail (E_IS_AUTHENTICATION_SESSION (session), FALSE);
@@ -1701,6 +1733,7 @@
 
 	uid = e_authentication_session_get_source_uid (session);
 
+#ifdef HAVE_GNOME_KEYRING
 	G_LOCK (gnome_keyring);
 
 	result = gnome_keyring_delete_password_sync (
@@ -1723,8 +1756,17 @@
 	}
 
 	G_UNLOCK (gnome_keyring);
+#else
+	g_set_error_literal (
+		error, E_AUTHENTICATION_SESSION_KEYRING_ERROR,
+		FALSE, "Keyring not supported on this platform");
+#endif
 
+#ifdef HAVE_GNOME_KEYRING
 	return (result == GNOME_KEYRING_RESULT_OK);
+#else
+	return FALSE;
+#endif
 }
 
 /**
--- libebackend/e-authentication-session.h	2013-02-26 14:58:36 +0000
+++ libebackend/e-authentication-session.h	2013-12-27 04:49:54 +0000
@@ -25,9 +25,11 @@
 
 #include <gio/gio.h>
 
+#ifdef HAVE_GNOME_KEYRING
 /* This needs to be in the public header since we're
  * reusing the GnomeKeyringResult enum for error codes. */
 #include <gnome-keyring.h>
+#endif
 
 #include <libedataserver/libedataserver.h>
 
--- libebackend/e-server-side-source.c	2013-02-26 14:58:36 +0000
+++ libebackend/e-server-side-source.c	2013-12-27 05:21:13 +0000
@@ -79,7 +79,7 @@
 
 /* Forward Declarations */
 static void	e_server_side_source_initable_init
-						(GInitableIface *interface);
+						(GInitableIface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	EServerSideSource,
@@ -183,19 +183,19 @@
 }
 
 static gboolean
-server_side_source_allow_auth_prompt_cb (EDBusSource *interface,
+server_side_source_allow_auth_prompt_cb (EDBusSource *interf,
                                          GDBusMethodInvocation *invocation,
                                          EServerSideSource *source)
 {
 	e_server_side_source_set_allow_auth_prompt (source, TRUE);
 
-	e_dbus_source_complete_allow_auth_prompt (interface, invocation);
+	e_dbus_source_complete_allow_auth_prompt (interf, invocation);
 
 	return TRUE;
 }
 
 static gboolean
-server_side_source_remove_cb (EDBusSourceRemovable *interface,
+server_side_source_remove_cb (EDBusSourceRemovable *interf,
                               GDBusMethodInvocation *invocation,
                               EServerSideSource *source)
 {
@@ -212,13 +212,13 @@
 		g_dbus_method_invocation_take_error (invocation, error);
 	else
 		e_dbus_source_removable_complete_remove (
-			interface, invocation);
+			interf, invocation);
 
 	return TRUE;
 }
 
 static gboolean
-server_side_source_write_cb (EDBusSourceWritable *interface,
+server_side_source_write_cb (EDBusSourceWritable *interf,
                              GDBusMethodInvocation *invocation,
                              const gchar *data,
                              ESource *source)
@@ -259,7 +259,7 @@
 		g_dbus_method_invocation_take_error (invocation, error);
 	else
 		e_dbus_source_writable_complete_write (
-			interface, invocation);
+			interf, invocation);
 
 	g_object_unref (dbus_source);
 	g_object_unref (dbus_object);
@@ -294,7 +294,7 @@
 }
 
 static gboolean
-server_side_source_remote_create_cb (EDBusSourceRemoteCreatable *interface,
+server_side_source_remote_create_cb (EDBusSourceRemoteCreatable *interf,
                                      GDBusMethodInvocation *invocation,
                                      const gchar *uid,
                                      const gchar *data,
@@ -352,7 +352,7 @@
 	g_object_unref (dbus_source);
 
 	async_context = g_slice_new0 (AsyncContext);
-	async_context->remote_creatable = g_object_ref (interface);
+	async_context->remote_creatable = g_object_ref (interf);
 	async_context->invocation = g_object_ref (invocation);
 
 	e_source_remote_create (
@@ -392,14 +392,14 @@
 }
 
 static gboolean
-server_side_source_remote_delete_cb (EDBusSourceRemoteDeletable *interface,
+server_side_source_remote_delete_cb (EDBusSourceRemoteDeletable *interf,
                                      GDBusMethodInvocation *invocation,
                                      ESource *source)
 {
 	AsyncContext *async_context;
 
 	async_context = g_slice_new0 (AsyncContext);
-	async_context->remote_deletable = g_object_ref (interface);
+	async_context->remote_deletable = g_object_ref (interf);
 	async_context->invocation = g_object_ref (invocation);
 
 	e_source_remote_delete (
@@ -1163,11 +1163,11 @@
 }
 
 static void
-e_server_side_source_initable_init (GInitableIface *interface)
+e_server_side_source_initable_init (GInitableIface *interf)
 {
-	initable_parent_interface = g_type_interface_peek_parent (interface);
+	initable_parent_interface = g_type_interface_peek_parent (interf);
 
-	interface->init = server_side_source_initable_init;
+	interf->init = server_side_source_initable_init;
 }
 
 static void
--- libebackend/e-source-registry-server.c	2013-02-26 14:58:36 +0000
+++ libebackend/e-source-registry-server.c	2013-12-27 05:23:52 +0000
@@ -643,7 +643,7 @@
 }
 
 static gboolean
-source_registry_server_authenticate_cb (EDBusSourceManager *interface,
+source_registry_server_authenticate_cb (EDBusSourceManager *interf,
                                         GDBusMethodInvocation *invocation,
                                         const gchar *source_uid,
                                         const gchar *prompt_title,
@@ -711,7 +711,7 @@
 		g_object_ref (session));
 
 	e_dbus_source_manager_complete_authenticate (
-		interface, invocation, auth_object_path);
+		interf, invocation, auth_object_path);
 
 	g_object_unref (authenticator);
 	g_object_unref (session);
@@ -824,7 +824,7 @@
 }
 
 static gboolean
-source_registry_server_create_sources_cb (EDBusSourceManager *interface,
+source_registry_server_create_sources_cb (EDBusSourceManager *interf,
                                           GDBusMethodInvocation *invocation,
                                           GVariant *array,
                                           ESourceRegistryServer *server)
@@ -850,13 +850,13 @@
 		g_dbus_method_invocation_take_error (invocation, error);
 	else
 		e_dbus_source_manager_complete_create_sources (
-			interface, invocation);
+			interf, invocation);
 
 	return TRUE;
 }
 
 static gboolean
-source_registry_server_reload_cb (EDBusSourceManager *interface,
+source_registry_server_reload_cb (EDBusSourceManager *interf,
                                   GDBusMethodInvocation *invocation,
                                   ESourceRegistryServer *server)
 {
@@ -864,7 +864,7 @@
 		E_DBUS_SERVER (server),
 		E_DBUS_SERVER_EXIT_RELOAD);
 
-	e_dbus_source_manager_complete_reload (interface, invocation);
+	e_dbus_source_manager_complete_reload (interf, invocation);
 
 	return TRUE;
 }
--- libedataserver/e-source.c	2013-02-26 14:58:36 +0000
+++ libedataserver/e-source.c	2013-12-27 04:22:46 +0000
@@ -161,7 +161,7 @@
 static guint signals[LAST_SIGNAL];
 
 /* Forward Declarations */
-static void	e_source_initable_init		(GInitableIface *interface);
+static void	e_source_initable_init		(GInitableIface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	ESource,
@@ -1560,9 +1560,9 @@
 }
 
 static void
-e_source_initable_init (GInitableIface *interface)
+e_source_initable_init (GInitableIface *interf)
 {
-	interface->init = source_initable_init;
+	interf->init = source_initable_init;
 }
 
 static void
--- libedataserverui/e-passwords-win32.c	2013-02-26 14:58:36 +0000
+++ libedataserverui/e-passwords-win32.c	2013-12-27 07:16:46 +0000
@@ -48,9 +48,7 @@
 #include <glib/gi18n-lib.h>
 
 #include "e-passwords.h"
-#include "libedataserver/e-data-server-util.h"
-#include "libedataserver/e-flag.h"
-#include "libedataserver/e-url.h"
+#include "libedataserver/libedataserver.h"
 
 #define d(x)
 
--- services/evolution-source-registry/evolution-source-registry-migrate-sources.c	2013-02-26 14:58:36 +0000
+++ services/evolution-source-registry/evolution-source-registry-migrate-sources.c	2013-12-27 07:34:26 +0000
@@ -21,7 +21,9 @@
 #include <glib/gstdio.h>
 #include <camel/camel.h>
 #include <libsoup/soup.h>
+#ifdef HAVE_GNOME_KEYRING
 #include <gnome-keyring.h>
+#endif
 
 #include <libebackend/libebackend.h>
 
@@ -137,6 +139,7 @@
 	PropertyFunc property_func;
 };
 
+#ifdef HAVE_GNOME_KEYRING
 static GnomeKeyringPasswordSchema schema = {
 	GNOME_KEYRING_ITEM_GENERIC_SECRET,
 	{
@@ -145,6 +148,7 @@
 		{ NULL, 0 }
 	}
 };
+#endif
 
 /* Forward Declarations */
 void evolution_source_registry_migrate_sources (void);
@@ -252,7 +256,9 @@
                        const gchar *server,
                        const gchar *protocol)
 {
+#ifdef HAVE_GNOME_KEYRING
 	GnomeKeyringAttributeList *attributes;
+#endif
 	GList *found_list = NULL;
 	gchar *display_name;
 
@@ -262,6 +268,7 @@
 
 	display_name = g_strdup_printf (KEYRING_ITEM_DISPLAY_FORMAT, uid);
 
+#ifdef HAVE_GNOME_KEYRING
 	attributes = gnome_keyring_attribute_list_new ();
 
 	gnome_keyring_attribute_list_append_string (
@@ -293,6 +300,7 @@
 
 	gnome_keyring_attribute_list_free (attributes);
 	gnome_keyring_found_list_free (found_list);
+#endif
 
 	g_free (display_name);
 }
--- tests/libedataserver/e-source-test.c	2013-02-26 14:58:36 +0000
+++ tests/libedataserver/e-source-test.c	2013-12-27 11:20:56 +0000
@@ -17,7 +17,11 @@
  */
 
 #include <string.h>
+#ifdef _WIN32
+#include <gio/gwin32outputstream.h>
+#else
 #include <gio/gunixoutputstream.h>
+#endif
 
 #include <libedataserver/libedataserver.h>
 
@@ -63,7 +67,11 @@
 	g_assert_no_error (error);
 
 	/* Write the given content to the temporary key file. */
+#ifdef G_OS_WIN32
+	stream = g_win32_output_stream_new (fd, TRUE);
+#else
 	stream = g_unix_output_stream_new (fd, TRUE);
+#endif
 	g_output_stream_write_all (
 		stream, content, strlen (content), NULL, NULL, &error);
 	g_object_unref (stream);
--- tests/libedataserverui/evolution-source-viewer.c	2013-02-26 14:58:36 +0000
+++ tests/libedataserverui/evolution-source-viewer.c	2013-12-27 11:22:50 +0000
@@ -108,7 +108,7 @@
 GNode *		e_source_viewer_build_display_tree
 						(ESourceViewer *viewer);
 
-static void	e_source_viewer_initable_init	(GInitableIface *interface);
+static void	e_source_viewer_initable_init	(GInitableIface *interf);
 
 G_DEFINE_TYPE_WITH_CODE (
 	ESourceViewer,
@@ -892,9 +892,9 @@
 }
 
 static void
-e_source_viewer_initable_init (GInitableIface *interface)
+e_source_viewer_initable_init (GInitableIface *interf)
 {
-	interface->init = source_viewer_initable_init;
+	interf->init = source_viewer_initable_init;
 }
 
 static void
--- camel/camel-mime-utils.c	2013-02-26 14:58:36 +0000
+++ camel/camel-mime-utils.c	2013-12-27 13:38:18 +0000
@@ -113,6 +113,24 @@
  * time representation, stored in @tm, and provides the offset in
  * seconds from UTC time, stored in @offset.
  **/
+
+#ifndef HAVE_LOCALTIME_R
+struct tm *
+localtime_r (const time_t *tt,
+             struct tm *tm)
+{
+	struct tm *p = NULL;
+	p = localtime (tt);
+
+	if (p != NULL)
+		*tm = *p;
+	else
+		tm = NULL;
+
+	return tm;
+}
+#endif
+
 void
 camel_localtime_with_offset (time_t tt,
                              struct tm *tm,
