[gimp] Bug 622934 - Migrate from dbus-glib to glib's GDBus
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 622934 - Migrate from dbus-glib to glib's GDBus
- Date: Fri, 24 May 2013 21:29:03 +0000 (UTC)
commit c4460e846b55304afd262add2ca61dd69bf468a5
Author: Michael Natterer <mitch gimp org>
Date: Fri May 24 23:25:47 2013 +0200
Bug 622934 - Migrate from dbus-glib to glib's GDBus
Drop the glib-dbus dependency and port stuff to GDBus. Use it
unconditionally if not on Windows or OSX. It seels to work just like
before but I have no idea if everything is really correct.
INSTALL | 20 ++----
app/gui/.gitignore | 3 +-
app/gui/Makefile.am | 16 +++--
app/gui/dbus-service.xml | 5 +-
app/gui/gimpdbusservice.c | 144 +++++++++++++++++++--------------------
app/gui/gimpdbusservice.h | 38 ++++-------
app/gui/gui-unique.c | 162 ++++++++++++++++++++++++---------------------
app/unique.c | 4 +-
configure.ac | 39 +++--------
9 files changed, 201 insertions(+), 230 deletions(-)
---
diff --git a/INSTALL b/INSTALL
index e24780b..26083b1 100644
--- a/INSTALL
+++ b/INSTALL
@@ -57,10 +57,7 @@ header files installed.
and fontconfig 2.2.0 or newer. Older versions are known to have
bugs that seriously affect the stability of GIMP.
- 7. We use dbus-glib if available. Grab it from
- http://dbus.freedesktop.org/releases/dbus-glib/
-
- 8. Access of remote files is implemented in the URI plug-in. There
+ 7. Access of remote files is implemented in the URI plug-in. There
are several possible implementations for this. The implementation
used is determined when you configure GIMP. By default the
GIO/GVfs backend is used. If you don't have GVfs support on your
@@ -68,27 +65,27 @@ header files installed.
configure. The configure script will then try to detect another
method for accessing remote files.
- 9. The file-compressor plug-in requires zlib, libbzip2, and liblzma to
+ 8. The file-compressor plug-in requires zlib, libbzip2, and liblzma to
be installed. All these libraries are required dependencies.
- 10. You may want to install other third party libraries or programs
+ 9. You may want to install other third party libraries or programs
that are needed for some of the available plug-ins. We recommend to
check that the following libraries are installed: lcms, libpng,
libjpeg, libpoppler, libtiff, webkit, libmng, librsvg, libwmf,
libgs (Ghostscript), libaa and libjasper.
- 11. The Python extension requires Python development headers to be
+ 10. The Python extension requires Python development headers to be
present. You will also need PyGTK and the respective development
headers.
- 12. Configure GIMP by running the `configure' script. You may want
+ 11. Configure GIMP by running the `configure' script. You may want
to pass some options to it, see below.
- 13. Build GIMP by running `make'. The use of GNU make is recommended.
+ 12. Build GIMP by running `make'. The use of GNU make is recommended.
If you need to tweak the build to make it work with other flavours
of make, we'd appreciate if you'd send us a patch with the changes.
- 14. Install GIMP by running `make install'. In order to avoid clashes
+ 13. Install GIMP by running `make install'. In order to avoid clashes
with other versions of GIMP, we install a binary called gimp-2.8.
By default there's also a link created so that you can type 'gimp'
to start gimp-2.8.
@@ -204,9 +201,6 @@ These are:
--without-alsa. If you don't want to compile ALSA support into the
MIDI input controller module, you can use the --without-alsa option.
- --without-dbus. If you want to build without D-Bus support, you can
- pass --without-dbus to the configure script.
-
--without-linux-input. If you don't want to compile the Linux Input
controller module, you can use the --without-linux-input option.
diff --git a/app/gui/.gitignore b/app/gui/.gitignore
index 775ded6..f746fa9 100644
--- a/app/gui/.gitignore
+++ b/app/gui/.gitignore
@@ -3,6 +3,7 @@
/.deps
/.libs
/*.lo
-/gimpdbusservice-glue.h
+/gimpdbusservice-generated.c
+/gimpdbusservice-generated.h
/libappgui.a
/libappgui.la
diff --git a/app/gui/Makefile.am b/app/gui/Makefile.am
index 10f9c32..fe75010 100644
--- a/app/gui/Makefile.am
+++ b/app/gui/Makefile.am
@@ -9,6 +9,7 @@ INCLUDES = \
-I$(top_srcdir) \
-I$(top_builddir)/app \
-I$(top_srcdir)/app \
+ $(GIO_UNIX_CFLAGS) \
$(GEGL_CFLAGS) \
$(GTK_CFLAGS) \
$(DBUS_GLIB_CFLAGS) \
@@ -41,7 +42,9 @@ libappgui_a_sources = \
ige-mac-menu.c \
ige-mac-menu.h
-libappgui_a_built_sources = gimpdbusservice-glue.h
+libappgui_a_built_sources = \
+ gimpdbusservice-generated.c \
+ gimpdbusservice-generated.h
libappgui_a_SOURCES = $(libappgui_a_built_sources) $(libappgui_a_sources)
@@ -52,10 +55,13 @@ EXTRA_DIST = \
# rules to generate built sources
#
# setup autogeneration dependencies
-gen_sources = gimpdbusservice-glue.h
+gen_sources = $(libappgui_a_built_sources)
CLEANFILES = $(gen_sources)
-$(srcdir)/gimpdbusservice.c: gimpdbusservice-glue.h
+$(srcdir)/gimpdbusservice.c: $(libappgui_a_built_sources)
-gimpdbusservice-glue.h: $(srcdir)/dbus-service.xml
- $(DBUS_BINDING_TOOL) --mode=glib-server --prefix=gimp $< > $(@F)
+$(libappgui_a_built_sources): $(srcdir)/dbus-service.xml
+ $(GDBUS_CODEGEN) --interface-prefix org.gimp.GIMP. \
+ --generate-c-code gimpdbusservice-generated \
+ --c-namespace GimpDBusService \
+ $(srcdir)/dbus-service.xml
diff --git a/app/gui/dbus-service.xml b/app/gui/dbus-service.xml
index 58af07b..9324ad6 100644
--- a/app/gui/dbus-service.xml
+++ b/app/gui/dbus-service.xml
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<node name="/org/gimp/GIMP/UI">
+<node>
<interface name="org.gimp.GIMP.UI">
- <annotation name="org.freedesktop.DBus.GLib.CSymbol"
- value="gimp_dbus_service" />
-
<method name="Open">
<arg type="s" name="uri" direction="in" />
<arg type="b" name="success" direction="out" />
diff --git a/app/gui/gimpdbusservice.c b/app/gui/gimpdbusservice.c
index 771664d..9e90c46 100644
--- a/app/gui/gimpdbusservice.c
+++ b/app/gui/gimpdbusservice.c
@@ -3,6 +3,7 @@
*
* GimpDBusService
* Copyright (C) 2007, 2008 Sven Neumann <sven gimp org>
+ * Copyright (C) 2013 Michael Natterer <mitch gimp org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,11 +21,8 @@
#include "config.h"
-#if HAVE_DBUS_GLIB
-
#include <gegl.h>
#include <gtk/gtk.h>
-#include <dbus/dbus-glib.h>
#include "gui-types.h"
@@ -37,14 +35,7 @@
#include "display/gimpdisplayshell.h"
#include "gimpdbusservice.h"
-#include "gimpdbusservice-glue.h"
-
-enum
-{
- OPENED,
- LAST_SIGNAL
-};
typedef struct
{
@@ -53,32 +44,42 @@ typedef struct
} OpenData;
-static void gimp_dbus_service_class_init (GimpDBusServiceClass *klass);
+static void gimp_dbus_service_ui_iface_init (GimpDBusServiceUIIface *iface);
-static void gimp_dbus_service_init (GimpDBusService *service);
-static void gimp_dbus_service_dispose (GObject *object);
-static void gimp_dbus_service_finalize (GObject *object);
+static void gimp_dbus_service_dispose (GObject *object);
+static void gimp_dbus_service_finalize (GObject *object);
-static void gimp_dbus_service_gimp_opened (Gimp *gimp,
- const gchar *uri,
- GimpDBusService *service);
+static gboolean gimp_dbus_service_activate (GimpDBusServiceUI *service,
+ GDBusMethodInvocation *invocation);
+static gboolean gimp_dbus_service_open (GimpDBusServiceUI *service,
+ GDBusMethodInvocation *invocation,
+ const gchar *uri);
-static gboolean gimp_dbus_service_queue_open (GimpDBusService *service,
- const gchar *uri,
- gboolean as_new);
+static gboolean gimp_dbus_service_open_as_new (GimpDBusServiceUI *service,
+ GDBusMethodInvocation *invocation,
+ const gchar *uri);
-static gboolean gimp_dbus_service_open_idle (GimpDBusService *service);
-static OpenData * gimp_dbus_service_open_data_new (GimpDBusService *service,
- const gchar *uri,
- gboolean as_new);
-static void gimp_dbus_service_open_data_free (OpenData *data);
+static void gimp_dbus_service_gimp_opened (Gimp *gimp,
+ const gchar *uri,
+ GimpDBusService *service);
+static gboolean gimp_dbus_service_queue_open (GimpDBusService *service,
+ const gchar *uri,
+ gboolean as_new);
-G_DEFINE_TYPE (GimpDBusService, gimp_dbus_service, G_TYPE_OBJECT)
+static gboolean gimp_dbus_service_open_idle (GimpDBusService *service);
+static OpenData * gimp_dbus_service_open_data_new (GimpDBusService *service,
+ const gchar *uri,
+ gboolean as_new);
+static void gimp_dbus_service_open_data_free (OpenData *data);
-#define parent_class gimp_dbus_service_parent_class
-static guint gimp_dbus_service_signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE_WITH_CODE (GimpDBusService, gimp_dbus_service,
+ GIMP_DBUS_SERVICE_TYPE_UI_SKELETON,
+ G_IMPLEMENT_INTERFACE (GIMP_DBUS_SERVICE_TYPE_UI,
+ gimp_dbus_service_ui_iface_init))
+
+#define parent_class gimp_dbus_service_parent_class
static void
@@ -86,20 +87,8 @@ gimp_dbus_service_class_init (GimpDBusServiceClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- gimp_dbus_service_signals[OPENED] =
- g_signal_new ("opened",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GimpDBusServiceClass, opened),
- NULL, NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
-
object_class->dispose = gimp_dbus_service_dispose;
object_class->finalize = gimp_dbus_service_finalize;
-
- dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
- &dbus_glib_gimp_object_info);
}
static void
@@ -108,6 +97,14 @@ gimp_dbus_service_init (GimpDBusService *service)
service->queue = g_queue_new ();
}
+static void
+gimp_dbus_service_ui_iface_init (GimpDBusServiceUIIface *iface)
+{
+ iface->handle_activate = gimp_dbus_service_activate;
+ iface->handle_open = gimp_dbus_service_open;
+ iface->handle_open_as_new = gimp_dbus_service_open_as_new;
+}
+
GObject *
gimp_dbus_service_new (Gimp *gimp)
{
@@ -160,53 +157,55 @@ gimp_dbus_service_finalize (GObject *object)
}
gboolean
-gimp_dbus_service_open (GimpDBusService *service,
- const gchar *uri,
- gboolean *success,
- GError **dbus_error)
+gimp_dbus_service_activate (GimpDBusServiceUI *service,
+ GDBusMethodInvocation *invocation)
{
- g_return_val_if_fail (GIMP_IS_DBUS_SERVICE (service), FALSE);
- g_return_val_if_fail (uri != NULL, FALSE);
- g_return_val_if_fail (success != NULL, FALSE);
+ Gimp *gimp = GIMP_DBUS_SERVICE (service)->gimp;
- *success = gimp_dbus_service_queue_open (service, uri, FALSE);
+ /* We want to be called again later in case that GIMP is not fully
+ * started yet.
+ */
+ if (gimp_is_restored (gimp))
+ {
+ GimpObject *display;
+
+ display = gimp_container_get_first_child (gimp->displays);
+
+ if (display)
+ gimp_display_shell_present (gimp_display_get_shell (GIMP_DISPLAY (display)));
+ }
+
+ gimp_dbus_service_ui_complete_activate (service, invocation);
return TRUE;
}
gboolean
-gimp_dbus_service_open_as_new (GimpDBusService *service,
- const gchar *uri,
- gboolean *success,
- GError **dbus_error)
+gimp_dbus_service_open (GimpDBusServiceUI *service,
+ GDBusMethodInvocation *invocation,
+ const gchar *uri)
{
- g_return_val_if_fail (GIMP_IS_DBUS_SERVICE (service), FALSE);
- g_return_val_if_fail (uri != NULL, FALSE);
- g_return_val_if_fail (success != NULL, FALSE);
+ gboolean success;
+
+ success = gimp_dbus_service_queue_open (GIMP_DBUS_SERVICE (service),
+ uri, FALSE);
- *success = gimp_dbus_service_queue_open (service, uri, TRUE);
+ gimp_dbus_service_ui_complete_open (service, invocation, success);
return TRUE;
}
gboolean
-gimp_dbus_service_activate (GimpDBusService *service,
- GError **dbus_error)
+gimp_dbus_service_open_as_new (GimpDBusServiceUI *service,
+ GDBusMethodInvocation *invocation,
+ const gchar *uri)
{
- GimpObject *display;
-
- g_return_val_if_fail (GIMP_IS_DBUS_SERVICE (service), FALSE);
+ gboolean success;
- /* We want to be called again later in case that GIMP is not fully
- * started yet.
- */
- if (! gimp_is_restored (service->gimp))
- return TRUE;
+ success = gimp_dbus_service_queue_open (GIMP_DBUS_SERVICE (service),
+ uri, TRUE);
- display = gimp_container_get_first_child (service->gimp->displays);
-
- if (display)
- gimp_display_shell_present (gimp_display_get_shell (GIMP_DISPLAY (display)));
+ gimp_dbus_service_ui_complete_open_as_new (service, invocation, success);
return TRUE;
}
@@ -216,7 +215,7 @@ gimp_dbus_service_gimp_opened (Gimp *gimp,
const gchar *uri,
GimpDBusService *service)
{
- g_signal_emit (service, gimp_dbus_service_signals[OPENED], 0, uri);
+ g_signal_emit_by_name (service, "opened", uri);
}
/*
@@ -297,6 +296,3 @@ gimp_dbus_service_open_data_free (OpenData *data)
g_free (data->uri);
g_slice_free (OpenData, data);
}
-
-
-#endif /* HAVE_DBUS_GLIB */
diff --git a/app/gui/gimpdbusservice.h b/app/gui/gimpdbusservice.h
index 388fc9f..e2a295a 100644
--- a/app/gui/gimpdbusservice.h
+++ b/app/gui/gimpdbusservice.h
@@ -3,6 +3,7 @@
*
* GimpDBusService
* Copyright (C) 2007, 2008 Sven Neumann <sven gimp org>
+ * Copyright (C) 2013 Michael Natterer <mitch gimp org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,12 +22,16 @@
#ifndef __GIMP_DBUS_SERVICE_H__
#define __GIMP_DBUS_SERVICE_H__
-G_BEGIN_DECLS
+#include "gimpdbusservice-generated.h"
-#define GIMP_DBUS_SERVICE_NAME "org.gimp.GIMP.UI"
-#define GIMP_DBUS_SERVICE_PATH "/org/gimp/GIMP/UI"
-#define GIMP_DBUS_SERVICE_INTERFACE "org.gimp.GIMP.UI"
+/* service name and path should really be org.gimp.GIMP and
+ * /org/gimp/GIMP and only the interface be called UI.
+ */
+#define GIMP_DBUS_SERVICE_NAME "org.gimp.GIMP.UI"
+#define GIMP_DBUS_SERVICE_PATH "/org/gimp/GIMP/UI"
+#define GIMP_DBUS_INTERFACE_NAME "org.gimp.GIMP.UI"
+#define GIMP_DBUS_INTERFACE_PATH "/org/gimp/GIMP/UI"
#define GIMP_TYPE_DBUS_SERVICE (gimp_dbus_service_get_type ())
@@ -42,7 +47,7 @@ typedef struct _GimpDBusServiceClass GimpDBusServiceClass;
struct _GimpDBusService
{
- GObject parent_instance;
+ GimpDBusServiceUISkeleton parent_instance;
Gimp *gimp;
GQueue *queue;
@@ -51,30 +56,13 @@ struct _GimpDBusService
struct _GimpDBusServiceClass
{
- GObjectClass parent_class;
-
- /* signals */
- void (* opened) (GimpDBusService *service,
- const gchar *uri);
+ GimpDBusServiceUISkeletonClass parent_class;
};
-GType gimp_dbus_service_get_type (void) G_GNUC_CONST;
-
-GObject * gimp_dbus_service_new (Gimp *gimp);
-
-gboolean gimp_dbus_service_open (GimpDBusService *service,
- const gchar *uri,
- gboolean *success,
- GError **dbus_error);
-gboolean gimp_dbus_service_open_as_new (GimpDBusService *service,
- const gchar *uri,
- gboolean *success,
- GError **dbus_error);
-gboolean gimp_dbus_service_activate (GimpDBusService *service,
- GError **dbus_error);
+GType gimp_dbus_service_get_type (void) G_GNUC_CONST;
+GObject * gimp_dbus_service_new (Gimp *gimp);
-G_END_DECLS
#endif /* __GIMP_DBUS_SERVICE_H__ */
diff --git a/app/gui/gui-unique.c b/app/gui/gui-unique.c
index 072db7f..594009b 100644
--- a/app/gui/gui-unique.c
+++ b/app/gui/gui-unique.c
@@ -29,12 +29,6 @@
#include <sys/param.h>
#endif
-#if HAVE_DBUS_GLIB
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#endif
-
#include "gui/gui-types.h"
#include "core/gimp.h"
@@ -48,27 +42,30 @@
#include "gui-unique.h"
-#if HAVE_DBUS_GLIB
-static void gui_dbus_service_init (Gimp *gimp);
-static void gui_dbus_service_exit (void);
-
-static DBusGConnection *dbus_connection = NULL;
-#endif
-
#ifdef G_OS_WIN32
+
static void gui_unique_win32_init (Gimp *gimp);
static void gui_unique_win32_exit (void);
-static Gimp *unique_gimp = NULL;
-static HWND proxy_window = NULL;
-#endif
+static Gimp *unique_gimp = NULL;
+static HWND proxy_window = NULL;
+
+#elifdef GDK_WINDOWING_QUARTZ
-#ifdef GDK_WINDOWING_QUARTZ
static void gui_unique_mac_init (Gimp *gimp);
static void gui_unique_mac_exit (void);
-static Gimp *unique_gimp = NULL;
-AEEventHandlerUPP open_document_callback_proc;
+static Gimp *unique_gimp = NULL;
+AEEventHandlerUPP open_document_callback_proc;
+
+#else
+
+static void gui_dbus_service_init (Gimp *gimp);
+static void gui_dbus_service_exit (void);
+
+static GDBusObjectManagerServer *dbus_manager = NULL;
+static guint dbus_name_id = 0;
+
#endif
@@ -77,12 +74,10 @@ gui_unique_init (Gimp *gimp)
{
#ifdef G_OS_WIN32
gui_unique_win32_init (gimp);
-#elif HAVE_DBUS_GLIB
- gui_dbus_service_init (gimp);
-#endif
-
-#ifdef GDK_WINDOWING_QUARTZ
+#elifdef GDK_WINDOWING_QUARTZ
gui_unique_mac_init (gimp);
+#else
+ gui_dbus_service_init (gimp);
#endif
}
@@ -91,58 +86,14 @@ gui_unique_exit (void)
{
#ifdef G_OS_WIN32
gui_unique_win32_exit ();
-#elif HAVE_DBUS_GLIB
- gui_dbus_service_exit ();
-#endif
-
-#ifdef GDK_WINDOWING_QUARTZ
+#elifdef GDK_WINDOWING_QUARTZ
gui_unique_mac_exit ();
+#else
+ gui_dbus_service_exit ();
#endif
}
-#if HAVE_DBUS_GLIB
-
-static void
-gui_dbus_service_init (Gimp *gimp)
-{
- GError *error = NULL;
-
- g_return_if_fail (GIMP_IS_GIMP (gimp));
- g_return_if_fail (dbus_connection == NULL);
-
- dbus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
-
- if (dbus_connection)
- {
- GObject *service = gimp_dbus_service_new (gimp);
-
- dbus_bus_request_name (dbus_g_connection_get_connection (dbus_connection),
- GIMP_DBUS_SERVICE_NAME, 0, NULL);
-
- dbus_g_connection_register_g_object (dbus_connection,
- GIMP_DBUS_SERVICE_PATH, service);
- }
- else
- {
- g_printerr ("%s\n", error->message);
- g_error_free (error);
- }
-}
-
-static void
-gui_dbus_service_exit (void)
-{
- if (dbus_connection)
- {
- dbus_g_connection_unref (dbus_connection);
- dbus_connection = NULL;
- }
-}
-
-#endif /* HAVE_DBUS_GLIB */
-
-
#ifdef G_OS_WIN32
typedef struct
@@ -275,10 +226,7 @@ gui_unique_win32_exit (void)
DestroyWindow (proxy_window);
}
-#endif /* G_OS_WIN32 */
-
-
-#ifdef GDK_WINDOWING_QUARTZ
+#elifdef GDK_WINDOWING_QUARTZ
static gboolean
gui_unique_mac_idle_open (gchar *data)
@@ -379,4 +327,66 @@ gui_unique_mac_exit (void)
DisposeAEEventHandlerUPP(open_document_callback_proc);
}
-#endif /* GDK_WINDOWING_QUARTZ */
+#else
+
+static void
+gui_dbus_bus_acquired (GDBusConnection *connection,
+ const gchar *name,
+ Gimp *gimp)
+{
+ GDBusObjectSkeleton *object;
+ GObject *service;
+
+ /* this should use GIMP_DBUS_SERVICE_PATH, but that's historically wrong */
+ dbus_manager = g_dbus_object_manager_server_new ("/org/gimp/GIMP");
+
+ object = g_dbus_object_skeleton_new (GIMP_DBUS_INTERFACE_PATH);
+
+ service = gimp_dbus_service_new (gimp);
+ g_dbus_object_skeleton_add_interface (object,
+ G_DBUS_INTERFACE_SKELETON (service));
+ g_object_unref (service);
+
+ g_dbus_object_manager_server_export (dbus_manager, object);
+ g_object_unref (object);
+
+ g_dbus_object_manager_server_set_connection (dbus_manager, connection);
+}
+
+static void
+gui_dbus_name_acquired (GDBusConnection *connection,
+ const gchar *name,
+ Gimp *gimp)
+{
+}
+
+static void
+gui_dbus_name_lost (GDBusConnection *connection,
+ const gchar *name,
+ Gimp *gimp)
+{
+}
+
+static void
+gui_dbus_service_init (Gimp *gimp)
+{
+ g_return_if_fail (GIMP_IS_GIMP (gimp));
+ g_return_if_fail (dbus_name_id == 0);
+
+ dbus_name_id = g_bus_own_name (G_BUS_TYPE_SESSION,
+ GIMP_DBUS_SERVICE_NAME,
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ (GBusAcquiredCallback) gui_dbus_bus_acquired,
+ (GBusNameAcquiredCallback) gui_dbus_name_acquired,
+ (GBusNameLostCallback) gui_dbus_name_lost,
+ gimp, NULL);
+}
+
+static void
+gui_dbus_service_exit (void)
+{
+ g_bus_unown_name (dbus_name_id);
+ g_object_unref (dbus_manager);
+}
+
+#endif
diff --git a/app/unique.c b/app/unique.c
index f7ef455..a134931 100644
--- a/app/unique.c
+++ b/app/unique.c
@@ -118,7 +118,7 @@ gimp_unique_dbus_open (const gchar **filenames,
result = g_dbus_connection_call_sync (connection,
GIMP_DBUS_SERVICE_NAME,
GIMP_DBUS_SERVICE_PATH,
- GIMP_DBUS_SERVICE_INTERFACE,
+ GIMP_DBUS_INTERFACE_NAME,
method,
g_variant_new ("(s)",
uri),
@@ -149,7 +149,7 @@ gimp_unique_dbus_open (const gchar **filenames,
result = g_dbus_connection_call_sync (connection,
GIMP_DBUS_SERVICE_NAME,
GIMP_DBUS_SERVICE_PATH,
- GIMP_DBUS_SERVICE_INTERFACE,
+ GIMP_DBUS_INTERFACE_NAME,
"Activate",
NULL,
NULL,
diff --git a/configure.ac b/configure.ac
index 09dd84f..6bbb265 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,7 +58,6 @@ m4_define([wmf_required_version], [0.2.8])
m4_define([pygtk_required_version], [2.10.4])
m4_define([poppler_required_version], [0.12.4])
m4_define([libcurl_required_version], [7.15.1])
-m4_define([dbus_glib_required_version], [0.70])
m4_define([libgudev_required_version], [167])
m4_define([exif_required_version], [0.6.15])
m4_define([lcms_required_version], [2.2])
@@ -496,6 +495,15 @@ PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
PKG_CHECK_MODULES(GIO, gio-2.0)
+if test "$os_win32" != "yes"; then
+ PKG_CHECK_MODULES(GIO_UNIX, gio-unix-2.0)
+fi
+
+AC_PATH_PROG(GDBUS_CODEGEN, gdbus-codegen, no)
+if test "x$GDBUS_CODEGEN" = xno; then
+ AC_MSG_ERROR([Could not find gdbus-codegen in your PATH])
+fi
+
AC_MSG_CHECKING([if GLib is version 2.31.0 or newer])
if $PKG_CONFIG --atleast-version=2.31.0 glib-2.0; then
have_glib_2_31=yes
@@ -1694,35 +1702,6 @@ fi
AM_CONDITIONAL(HAVE_DX_DINPUT, test "x$have_dx_dinput" = xyes)
-###############################
-# Check for D-Bus GLib bindings
-###############################
-
-AC_ARG_WITH(dbus, [ --without-dbus build without D-Bus support])
-
-have_dbus_glib="no (disabled)"
-
-if test "x$with_dbus" != xno; then
- PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= dbus_glib_required_version,
- have_dbus_glib=yes,
- have_dbus_glib=no)
-fi
-
-if test "x$have_dbus_glib" = xyes; then
- AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool, no)
- if test "x$DBUS_BINDING_TOOL" = xno; then
- AC_MSG_WARN([Could not find dbus-binding-tool in your PATH])
- have_dbus_glib="no (dbus-binding-tool not found)"
- fi
-fi
-
-if test "x$have_dbus_glib" = xyes; then
- AC_DEFINE(HAVE_DBUS_GLIB, 1,
- [Define to 1 if D-Bus GLib bindings are available])
- GIMP_COMMAND='gimp-gimp_app_version'
-fi
-
-
####################
# Check for libgudev
####################
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]