File gnome-panel-no-bonobo-in-process.patch of Package gnome-panel

commit cc7f3e7cac8dd9da5e8e48eac6ef9e992c557812
Author: Vincent Untz <vuntz@gnome.org>
Date:   Thu Feb 17 12:47:25 2011 +0100

    bonobo: Remove API to build bonobo applet as shared library
    
    Yes, it's bad, it breaks API and ABI. In a stable branch. But it's the
    bonobo compatibility module. And it's a rather important fix.
    
    We can't have bonobo applets as shared libraries since both bonobo
    applets and dbus applets are sharing the PanelApplet type name, and they
    will conflict in the same process. Since we know we want to allow dbus
    in-process applets, it means we have to disallow bonobo in-process
    applets. Hence this change.

diff --git a/bonobo/libpanel-applet/panel-applet.c b/bonobo/libpanel-applet/panel-applet.c
index 9fe7e9b..9644d66 100644
--- a/bonobo/libpanel-applet/panel-applet.c
+++ b/bonobo/libpanel-applet/panel-applet.c
@@ -40,7 +40,6 @@
 #include <bonobo/bonobo-types.h>
 #include <bonobo/bonobo-property-bag.h>
 #include <bonobo/bonobo-item-handler.h>
-#include <bonobo/bonobo-shlib-factory.h>
 #include <bonobo/bonobo-property-bag-client.h>
 #include <gconf/gconf.h>
 #include <gconf/gconf-client.h>
@@ -1811,54 +1810,6 @@ panel_applet_factory_main (const gchar                 *iid,
 	return panel_applet_factory_main_closure (iid, applet_type, closure);
 }
 
-Bonobo_Unknown
-panel_applet_shlib_factory_closure (const char         *iid,
-				    GType               applet_type,
-				    PortableServer_POA  poa,
-				    gpointer            impl_ptr,
-				    GClosure           *closure,
-				    CORBA_Environment  *ev)
-{
-	BonoboShlibFactory *factory;
-
-	g_return_val_if_fail (iid != NULL, CORBA_OBJECT_NIL);
-	g_return_val_if_fail (closure != NULL, CORBA_OBJECT_NIL);
-
-	g_assert (g_type_is_a (applet_type, PANEL_TYPE_APPLET));
-
-	bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
-	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-
-	closure = bonobo_closure_store (closure, panel_applet_marshal_BOOLEAN__STRING);
-
-	factory = bonobo_shlib_factory_new_closure (
-			iid, poa, impl_ptr,
-			g_cclosure_new (G_CALLBACK (panel_applet_factory_callback),
-					panel_applet_callback_data_new (applet_type, closure),
-					(GClosureNotify) panel_applet_callback_data_free));
-
-        return CORBA_Object_duplicate (BONOBO_OBJREF (factory), ev);
-}
-
-Bonobo_Unknown
-panel_applet_shlib_factory (const char                 *iid,
-			    GType                       applet_type,
-			    PortableServer_POA          poa,
-			    gpointer                    impl_ptr,
-			    PanelAppletFactoryCallback  callback,
-			    gpointer                    user_data,
-			    CORBA_Environment          *ev)
-{
-	g_return_val_if_fail (iid != NULL, CORBA_OBJECT_NIL);
-	g_return_val_if_fail (callback != NULL, CORBA_OBJECT_NIL);
-
-	return panel_applet_shlib_factory_closure (
-			iid, applet_type, poa, impl_ptr,
-			g_cclosure_new (G_CALLBACK (callback),
-					user_data, NULL),
-			ev);
-}
-
 void
 panel_applet_set_background_widget (PanelApplet *applet,
 				    GtkWidget   *widget)
diff --git a/bonobo/libpanel-applet/panel-applet.h b/bonobo/libpanel-applet/panel-applet.h
index 7cd65b9..0494019 100644
--- a/bonobo/libpanel-applet/panel-applet.h
+++ b/bonobo/libpanel-applet/panel-applet.h
@@ -157,21 +157,6 @@ int                panel_applet_factory_main_closure  (const gchar		  *iid,
 						       GType                       applet_type,
 						       GClosure                   *closure);
 
-Bonobo_Unknown     panel_applet_shlib_factory         (const char                 *iid,
-						       GType                       applet_type,
-						       PortableServer_POA          poa,
-						       gpointer                    impl_ptr,
-						       PanelAppletFactoryCallback  callback,
-						       gpointer                    user_data,
-						       CORBA_Environment          *ev);
-
-Bonobo_Unknown	   panel_applet_shlib_factory_closure (const char                 *iid,
-						       GType                       applet_type,
-						       PortableServer_POA          poa,
-						       gpointer                    impl_ptr,
-						       GClosure                   *closure,
-						       CORBA_Environment          *ev);
-
 /*
  * These macros are getting a bit unwieldy.
  *
@@ -232,23 +217,6 @@ int main (int argc, char *argv [])						\
 	return retval;								\
 }
 
-#define PANEL_APPLET_BONOBO_SHLIB_FACTORY(iid, type, descr, callback, data)	\
-static Bonobo_Unknown								\
-__panel_applet_shlib_factory (PortableServer_POA  poa,				\
-			      const char         *oafiid,			\
-			      gpointer            impl_ptr,			\
-			      CORBA_Environment  *ev)				\
-{										\
-	_PANEL_APPLET_SETUP_GETTEXT (FALSE);					\
-        return panel_applet_shlib_factory ((iid), (type), poa, impl_ptr,	\
-					   (callback), (data), ev);		\
-}										\
-static BonoboActivationPluginObject plugin_list[] = {				\
-	{ (iid), __panel_applet_shlib_factory },				\
-	{ NULL }								\
-};										\
-const  BonoboActivationPlugin Bonobo_Plugin_info = { plugin_list, (descr) };
-
 G_END_DECLS
 
 #endif /* __PANEL_APPLET_H__ */