From owner-freebsd-gnome@FreeBSD.ORG Thu Jun 7 15:03:43 2012 Return-Path: Delivered-To: freebsd-gnome@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 66FFA1065670; Thu, 7 Jun 2012 15:03:43 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms16-1.1blu.de (ms16-1.1blu.de [89.202.0.34]) by mx1.freebsd.org (Postfix) with ESMTP id B35328FC18; Thu, 7 Jun 2012 15:03:42 +0000 (UTC) Received: from [88.217.91.84] (helo=localhost.my.domain) by ms16-1.1blu.de with esmtpsa (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1SceFL-0007k2-7k; Thu, 07 Jun 2012 17:03:35 +0200 Received: from localhost.my.domain (localhost [127.0.0.1]) by localhost.my.domain (8.14.4/8.14.3) with ESMTP id q57F3XjL002727; Thu, 7 Jun 2012 17:03:33 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by localhost.my.domain (8.14.4/8.14.3/Submit) id q57F3XqH002726; Thu, 7 Jun 2012 17:03:33 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: localhost.my.domain: guru set sender to guru@unixarea.de using -f Date: Thu, 7 Jun 2012 17:03:32 +0200 From: Matthias Apitz To: freebsd-ports@freebsd.org, freebsd-gnome@freebsd.org Message-ID: <20120607150332.GA2439@tinyCurrent> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="5vNYLRcllDrimb99" Content-Disposition: inline X-Operating-System: FreeBSD 9.0-CURRENT r214444 (i386) User-Agent: Mutt/1.5.21 (2010-09-15) X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 88.217.91.84 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: patch to update Evolution to 2.32.3 X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Matthias Apitz List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2012 15:03:43 -0000 --5vNYLRcllDrimb99 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hello, In May 2011 I fixed some bugs in Evolution based on the original 2.32.3 sources, among other problems this one: https://bugzilla.gnome.org/show_bug.cgi?id=649433 Now (in May 2012) I see in 10-CURRENT that in our ports tree Evolution is still on version 2.32.1; attached is a set of patches to update both ports to 2.32.3: ports/databases/evolution-data-server evolution-data-server.patch patch-eds (new file for evolution-data-server/files) ports/mail/evolution evolution.patch patch-calendar_gui_e-cal-model.c (new file for evolution/files) could some kind soul please commit them to the ports tree; thanks HIH matthias -- Matthias Apitz t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211 e - w http://www.unixarea.de/ UNIX since V7 on PDP-11 | UNIX on mainframe since ESER 1055 (IBM /370) UNIX on x86 since SVR4.2 UnixWare 2.1.2 | FreeBSD since 2.2.5 --5vNYLRcllDrimb99 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="evolution-data-server.patch" *** evolution-data-server/Makefile.orig Sat Sep 24 00:21:32 2011 --- evolution-data-server/Makefile Thu Jun 7 07:37:35 2012 *************** *** 7,13 **** # PORTNAME= evolution-data-server ! PORTVERSION= 2.32.1 PORTREVISION= 1 CATEGORIES= databases gnome MASTER_SITES= GNOME --- 7,13 ---- # PORTNAME= evolution-data-server ! PORTVERSION= 2.32.3 PORTREVISION= 1 CATEGORIES= databases gnome MASTER_SITES= GNOME *** evolution-data-server/distinfo.orig Sat Nov 20 16:36:26 2010 --- evolution-data-server/distinfo Thu Jun 7 07:40:49 2012 *************** *** 1,2 **** ! SHA256 (gnome2/evolution-data-server-2.32.1.tar.bz2) = de6a724504a9d72ca550a5a157df1e27dbb951a673f281106171c2345912fc79 ! SIZE (gnome2/evolution-data-server-2.32.1.tar.bz2) = 4290087 --- 1,2 ---- ! SHA256 (gnome2/evolution-data-server-2.32.3.tar.bz2) = 744026a745b711b3e393b61fed21c4926d1b10a3aa7da64f4b33a3e3bf5b085c ! SIZE (gnome2/evolution-data-server-2.32.3.tar.bz2) = 4322281 --5vNYLRcllDrimb99 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch-eds *** addressbook/tests/ebook/test-stress-bookviews.c.orig Thu Apr 21 21:35:36 2011 --- addressbook/tests/ebook/test-stress-bookviews.c Thu Jun 7 08:21:27 2012 *************** *** 100,105 **** --- 100,106 ---- g_object_unref (view); e_book_query_unref (query); + g_object_unref (book); return 0; } *** calendar/libedata-cal/e-cal-backend.c.orig Thu Apr 21 21:35:36 2011 --- calendar/libedata-cal/e-cal-backend.c Thu Jun 7 08:21:27 2012 *************** *** 44,51 **** struct _ECalBackendPrivate { /* The source for this backend */ ESource *source; - /* signal handler ID for source's 'changed' signal */ - gulong source_changed_id; /* URI, from source. This is cached, since we return const. */ gchar *uri; --- 44,49 ---- *************** *** 161,177 **** ESource *source) { if (backend->priv->source != NULL) { ! if (backend->priv->source_changed_id > 0) { ! g_signal_handler_disconnect ( ! backend->priv->source, ! backend->priv->source_changed_id); ! backend->priv->source_changed_id = 0; ! } g_object_unref (backend->priv->source); } if (source != NULL) ! backend->priv->source_changed_id = g_signal_connect ( g_object_ref (source), "changed", G_CALLBACK (source_changed_cb), backend); --- 159,170 ---- ESource *source) { if (backend->priv->source != NULL) { ! g_signal_handlers_disconnect_matched (backend->priv->source, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, source_changed_cb, backend); g_object_unref (backend->priv->source); } if (source != NULL) ! g_signal_connect ( g_object_ref (source), "changed", G_CALLBACK (source_changed_cb), backend); *************** *** 283,293 **** g_free (priv->uri); g_free (priv->cache_dir); ! if (priv->source_changed_id && priv->source) { ! g_signal_handler_disconnect (priv->source, priv->source_changed_id); ! priv->source_changed_id = 0; } - g_object_unref (priv->source); /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (e_cal_backend_parent_class)->finalize (object); --- 276,285 ---- g_free (priv->uri); g_free (priv->cache_dir); ! if (priv->source) { ! g_signal_handlers_disconnect_matched (priv->source, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, object); ! g_object_unref (priv->source); } /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (e_cal_backend_parent_class)->finalize (object); *************** *** 376,383 **** backend->priv->clients_mutex = g_mutex_new (); backend->priv->queries = e_list_new ( ! (EListCopyFunc) g_object_ref, ! (EListFreeFunc) g_object_unref, NULL); backend->priv->queries_mutex = g_mutex_new (); } --- 368,375 ---- backend->priv->clients_mutex = g_mutex_new (); backend->priv->queries = e_list_new ( ! (EListCopyFunc) NULL, ! (EListFreeFunc) NULL, NULL); backend->priv->queries_mutex = g_mutex_new (); } *** calendar/libedata-cal/e-data-cal-factory.c.orig Thu Apr 21 21:36:35 2011 --- calendar/libedata-cal/e-data-cal-factory.c Thu Jun 7 08:21:27 2012 *************** *** 557,562 **** --- 557,571 ---- } static void + unref_backend_cb (gpointer key, gpointer value, gpointer user_data) + { + ECalBackend *backend = value; + + if (backend) + g_object_unref (backend); + } + + static void e_data_cal_factory_finalize (GObject *object) { EDataCalFactory *factory = E_DATA_CAL_FACTORY (object); *************** *** 565,570 **** --- 574,581 ---- g_object_unref (factory->priv->gdbus_object); + g_hash_table_foreach (factory->priv->backends, unref_backend_cb, NULL); + g_hash_table_destroy (factory->priv->methods); g_hash_table_destroy (factory->priv->backends); g_hash_table_destroy (factory->priv->calendars); *** calendar/libedata-cal/e-data-cal-view.c.orig Thu Apr 21 21:35:36 2011 --- calendar/libedata-cal/e-data-cal-view.c Thu Jun 7 08:21:27 2012 *************** *** 328,333 **** --- 328,343 ---- return TRUE; } + static gboolean + impl_DataCalView_dispose (EGdbusCalView *object, GDBusMethodInvocation *invocation, EDataCalView *query) + { + e_gdbus_cal_view_complete_dispose (object, invocation); + + g_object_unref (query); + + return TRUE; + } + static void e_data_cal_view_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { *************** *** 383,388 **** --- 393,399 ---- priv->gdbus_object = e_gdbus_cal_view_stub_new (); g_signal_connect (priv->gdbus_object, "handle-start", G_CALLBACK (impl_DataCalView_start), query); g_signal_connect (priv->gdbus_object, "handle-stop", G_CALLBACK (impl_DataCalView_stop), query); + g_signal_connect (priv->gdbus_object, "handle-dispose", G_CALLBACK (impl_DataCalView_dispose), query); priv->backend = NULL; priv->started = FALSE; *************** *** 413,418 **** --- 424,430 ---- priv = query->priv; if (priv->backend) { + e_cal_backend_remove_query (priv->backend, query); g_object_unref (priv->backend); priv->backend = NULL; } *** calendar/libedata-cal/e-data-cal-view.xml.orig Thu Apr 21 21:35:36 2011 --- calendar/libedata-cal/e-data-cal-view.xml Thu Jun 7 08:21:27 2012 *************** *** 11,16 **** --- 11,20 ---- + + + + *** calendar/libegdbus/e-gdbus-egdbuscalview.c.orig Thu Apr 21 21:35:36 2011 --- calendar/libegdbus/e-gdbus-egdbuscalview.c Thu Jun 7 08:21:27 2012 *************** *** 71,76 **** --- 71,77 ---- __DONE_SIGNAL, __START_METHOD, __STOP_METHOD, + __DISPOSE_METHOD, __LAST_SIGNAL }; *************** *** 345,350 **** --- 346,352 ---- _property_name_to_gname = g_hash_table_new (g_str_hash, g_str_equal); g_hash_table_insert (_method_name_to_id, (gpointer) "start", GUINT_TO_POINTER (__START_METHOD)); g_hash_table_insert (_method_name_to_id, (gpointer) "stop", GUINT_TO_POINTER (__STOP_METHOD)); + g_hash_table_insert (_method_name_to_id, (gpointer) "dispose", GUINT_TO_POINTER (__DISPOSE_METHOD)); g_hash_table_insert (_signal_name_to_id, (gpointer) "ObjectsAdded", GUINT_TO_POINTER (__OBJECTS_ADDED_SIGNAL)); g_hash_table_insert (_signal_name_to_id, (gpointer) "ObjectsModified", GUINT_TO_POINTER (__OBJECTS_MODIFIED_SIGNAL)); g_hash_table_insert (_signal_name_to_id, (gpointer) "ObjectsRemoved", GUINT_TO_POINTER (__OBJECTS_REMOVED_SIGNAL)); *************** *** 556,561 **** --- 558,588 ---- 1, G_TYPE_DBUS_METHOD_INVOCATION); + /** + * EGdbusCalView::handle-dispose: + * @object: The exported object emitting the signal. + * @invocation: A #GDBusMethodInvocation object that can be used to return a value or error. + * + * On exported objects, this signal is emitted when a remote process (identified by @invocation) invokes the dispose D-Bus method on @object. Use e_gdbus_cal_view_complete_dispose() to return a value or g_dbus_method_invocation_return_error() to return an error. + * + * The signal is emitted in the thread-default main loop of the thread that e_gdbus_cal_view_register_object() was called from. + * + * On proxies, this signal is never emitted. + * + * Returns: %TRUE if you want to handle the method call (will stop further handlers from being called), %FALSE otherwise. + */ + signals[__DISPOSE_METHOD] = + g_signal_new ("handle-dispose", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EGdbusCalViewIface, handle_dispose), + g_signal_accumulator_true_handled, + NULL, + _e_gdbus_gdbus_cclosure_marshaller_BOOLEAN__OBJECT, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + /* GObject property definitions for D-Bus properties: */ } *************** *** 762,767 **** --- 789,894 ---- } /** + * e_gdbus_cal_view_call_dispose: + * @proxy: A #EGdbusCalView. + * @cancellable: A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation. + * @user_data: Data to pass to @callback. + * + * Invokes the org.gnome.evolution.dataserver.calendar.CalView.dispose + * D-Bus method on the remote object represented by @proxy. + * + * This is an asynchronous method. When the operation is finished, + * callback will be invoked in the thread-default main loop of the + * thread you are calling this method from. You can then call + * e_gdbus_cal_view_call_dispose_finish() to get the result of the operation. + * + * See e_gdbus_cal_view_call_dispose_sync() for the synchronous version of this method. + */ + void e_gdbus_cal_view_call_dispose ( + EGdbusCalView *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) + { + GVariant *_params; + _params = NULL; + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "dispose", + _params, + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); + } + + /** + * e_gdbus_cal_view_call_dispose_finish: + * @proxy: A #EGdbusCalView. + * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to e_gdbus_cal_view_call_dispose(). + * @error: Return location for error or %NULL. + * + * Finishes invoking the org.gnome.evolution.dataserver.calendar.CalView.dispose + * D-Bus method on the remote object represented by @proxy. + * + * Returns: %TRUE if the call succeeded, %FALSE if @error is set. + */ + gboolean e_gdbus_cal_view_call_dispose_finish ( + EGdbusCalView *proxy, + GAsyncResult *res, + GError **error) + { + gboolean _ret = FALSE; + GVariant *_result; + _result = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_result == NULL) + goto _out; + g_variant_unref (_result); + _ret = TRUE; + _out: + return _ret; + } + + /** + * e_gdbus_cal_view_call_dispose_sync: + * @proxy: A #EGdbusCalView. + * @cancellable: A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the org.gnome.evolution.dataserver.calendar.CalView.dispose + * D-Bus method on the remote object represented by @proxy. + * + * The calling thread is blocked until a reply is received. See + * e_gdbus_cal_view_call_dispose() for the asynchronous version of this method. + * + * Returns: %TRUE if the call succeeded, %FALSE if @error is set. + */ + gboolean e_gdbus_cal_view_call_dispose_sync ( + EGdbusCalView *proxy, + GCancellable *cancellable, + GError **error) + { + gboolean _ret = FALSE; + GVariant *_params; + GVariant *_result; + _params = NULL; + _result = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "dispose", + _params, + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_result == NULL) + goto _out; + g_variant_unref (_result); + _ret = TRUE; + _out: + return _ret; + } + + /** * e_gdbus_cal_view_complete_start: * @object: A #EGdbusCalView. * @invocation: A #GDBusMethodInvocation. *************** *** 801,806 **** --- 928,953 ---- g_dbus_method_invocation_return_value (invocation, NULL); } + /** + * e_gdbus_cal_view_complete_dispose: + * @object: A #EGdbusCalView. + * @invocation: A #GDBusMethodInvocation. + * + * Completes handling the org.gnome.evolution.dataserver.calendar.CalView.dispose + * D-Bus method invocation by returning a value. + * + * If you want to return an error, use g_dbus_method_invocation_return_error() + * or similar instead. + * + * This method will free @invocation, you cannot use it afterwards. + */ + void e_gdbus_cal_view_complete_dispose ( + EGdbusCalView *object, + GDBusMethodInvocation *invocation) + { + g_dbus_method_invocation_return_value (invocation, NULL); + } + /** * e_gdbus_cal_view_emit_objects_added: * @object: A #EGdbusCalView. *************** *** 1029,1038 **** --- 1176,1195 ---- (GDBusAnnotationInfo **) NULL, }; + static const GDBusMethodInfo e_gdbus_cal_view_method_dispose = + { + -1, + (gchar *) "dispose", + (GDBusArgInfo **) NULL, + (GDBusArgInfo **) NULL, + (GDBusAnnotationInfo **) NULL, + }; + static const GDBusMethodInfo * const e_gdbus_cal_view_method_info_pointers[] = { &e_gdbus_cal_view_method_start, &e_gdbus_cal_view_method_stop, + &e_gdbus_cal_view_method_dispose, NULL }; *************** *** 1083,1088 **** --- 1240,1257 ---- } break; + case __DISPOSE_METHOD: + { + EGdbusCalView *object = E_GDBUS_CAL_VIEW (user_data); + gboolean handled; + g_signal_emit (object, + signals[method_id], + 0, invocation, &handled); + if (!handled) + goto not_implemented; + } + break; + default: not_implemented: g_dbus_method_invocation_return_error (invocation, *** calendar/libegdbus/e-gdbus-egdbuscalview.h.orig Thu Apr 21 21:35:36 2011 --- calendar/libegdbus/e-gdbus-egdbuscalview.h Thu Jun 7 08:21:27 2012 *************** *** 35,40 **** --- 35,41 ---- * @done: Handler for the #EGdbusCalView::done signal. * @handle_start: Handler for the #EGdbusCalView::handle-start signal. * @handle_stop: Handler for the #EGdbusCalView::handle-stop signal. + * @handle_dispose: Handler for the #EGdbusCalView::handle-dispose signal. * * Virtual table. */ *************** *** 189,194 **** --- 190,198 ---- gboolean (*handle_stop) ( EGdbusCalView *object, GDBusMethodInvocation *invocation); + gboolean (*handle_dispose) ( + EGdbusCalView *object, + GDBusMethodInvocation *invocation); }; /* C Bindings for properties */ *************** *** 226,231 **** --- 230,251 ---- GCancellable *cancellable, GError **error); + void e_gdbus_cal_view_call_dispose ( + EGdbusCalView *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + gboolean e_gdbus_cal_view_call_dispose_finish ( + EGdbusCalView *proxy, + GAsyncResult *res, + GError **error); + + gboolean e_gdbus_cal_view_call_dispose_sync ( + EGdbusCalView *proxy, + GCancellable *cancellable, + GError **error); + /* D-Bus Methods Completion Helpers */ void e_gdbus_cal_view_complete_start ( EGdbusCalView *object, *************** *** 235,240 **** --- 255,264 ---- EGdbusCalView *object, GDBusMethodInvocation *invocation); + void e_gdbus_cal_view_complete_dispose ( + EGdbusCalView *object, + GDBusMethodInvocation *invocation); + /* D-Bus Signal Emission Helpers */ void e_gdbus_cal_view_emit_objects_added ( EGdbusCalView *object, *** calendar/libecal/e-cal-view.c.orig Thu Apr 21 21:35:36 2011 --- calendar/libecal/e-cal-view.c Thu Jun 7 08:21:27 2012 *************** *** 193,200 **** switch (property_id) { case PROP_VIEW: ! if (priv->gdbus_calview != NULL) ! g_object_unref (priv->gdbus_calview); priv->gdbus_calview = g_object_ref (g_value_get_pointer (value)); g_signal_connect (priv->gdbus_calview, "objects-added", G_CALLBACK (objects_added_cb), view); --- 193,200 ---- switch (property_id) { case PROP_VIEW: ! /* gdbus_calview can be set only once */ ! g_return_if_fail (priv->gdbus_calview == NULL); priv->gdbus_calview = g_object_ref (g_value_get_pointer (value)); g_signal_connect (priv->gdbus_calview, "objects-added", G_CALLBACK (objects_added_cb), view); *************** *** 247,254 **** view = E_CAL_VIEW (object); priv = view->priv; ! if (priv->gdbus_calview != NULL) g_object_unref (priv->gdbus_calview); g_object_unref (priv->client); --- 247,265 ---- view = E_CAL_VIEW (object); priv = view->priv; ! if (priv->gdbus_calview != NULL) { ! GError *error = NULL; ! ! g_signal_handlers_disconnect_matched (priv->gdbus_calview, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view); ! e_gdbus_cal_view_call_dispose_sync (priv->gdbus_calview, NULL, &error); g_object_unref (priv->gdbus_calview); + priv->gdbus_calview = NULL; + + if (error) { + g_warning ("Failed to dispose cal view: %s", error->message); + g_error_free (error); + } + } g_object_unref (priv->client); --5vNYLRcllDrimb99 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="evolution.patch" *** evolution/Makefile.orig Thu Jun 7 08:37:44 2012 --- evolution/Makefile Thu Jun 7 08:38:28 2012 *************** *** 7,14 **** # PORTNAME= evolution ! PORTVERSION= 2.32.1 ! PORTREVISION= 2 CATEGORIES= mail gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 --- 7,14 ---- # PORTNAME= evolution ! PORTVERSION= 2.32.3 ! PORTREVISION= 1 CATEGORIES= mail gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 *** evolution/distinfo.orig Thu Jun 7 08:38:48 2012 --- evolution/distinfo Thu Jun 7 08:42:30 2012 *************** *** 1,2 **** ! SHA256 (gnome2/evolution-2.32.1.tar.bz2) = 6f6f904b5a2c6cf51f9c44317fc1990b07593eba54957c3924c2db0a235117a3 ! SIZE (gnome2/evolution-2.32.1.tar.bz2) = 31875075 --- 1,2 ---- ! SHA256 (gnome2/evolution-2.32.3.tar.bz2) = 33ab38780e9abb71506230e331e9c3534444b5ed3f17046f0b6371a00df686fb ! SIZE (gnome2/evolution-2.32.3.tar.bz2) = 31966138 --5vNYLRcllDrimb99--