The spice-controller integration code is only needed when a browser plugin is in use. This has been deprecated in favour of .vv files for several years now. This commit makes this code optional, if spice-controller.pc cannot be found, the controller code is not going to be built. --- configure.ac | 11 +++++++++-- src/remote-viewer.c | 50 ++++++++++++++++++++++++++------------------------ 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/configure.ac b/configure.ac index 69e3708..312116c 100644 --- a/configure.ac +++ b/configure.ac @@ -159,18 +159,25 @@ AC_ARG_WITH([spice-gtk], AS_IF([test "x$with_spice_gtk" != "xno" && test "x$with_spice_gtk" != "xyes"], [PKG_CHECK_EXISTS([spice-client-gtk-3.0 >= $SPICE_GTK_REQUIRED spice-client-glib-2.0 >= $SPICE_GTK_REQUIRED - spice-controller spice-protocol >= $SPICE_PROTOCOL_REQUIRED], + spice-protocol >= $SPICE_PROTOCOL_REQUIRED], [with_spice_gtk=yes], [with_spice_gtk=no])]) AS_IF([test "x$with_spice_gtk" = "xyes"], [PKG_CHECK_MODULES(SPICE_GTK, [spice-client-gtk-3.0 >= $SPICE_GTK_REQUIRED spice-client-glib-2.0 >= $SPICE_GTK_REQUIRED])] - [PKG_CHECK_MODULES(SPICE_CONTROLLER, [spice-controller])] [PKG_CHECK_MODULES(SPICE_PROTOCOL, [spice-protocol >= $SPICE_PROTOCOL_REQUIRED])] [AC_DEFINE([HAVE_SPICE_GTK], 1, [Have spice-gtk?])] ) AM_CONDITIONAL([HAVE_SPICE_GTK], [test "x$with_spice_gtk" = "xyes"]) +AS_IF([test "x$with_spice_gtk" = "xyes"], + [PKG_CHECK_MODULES(SPICE_CONTROLLER, [spice-controller], + [have_spice_controller=yes], + [have_spice_controller=no])] +) +AS_IF([test "x$have_spice_controller" = "xyes"], + [AC_DEFINE([HAVE_SPICE_CONTROLLER], 1, [Have spice-controller])]) + AC_ARG_WITH([ovirt], AS_HELP_STRING([--without-ovirt], [Ignore presence of librest and disable oVirt support])) diff --git a/src/remote-viewer.c b/src/remote-viewer.c index 451fb1d..b4bc40c 100644 --- a/src/remote-viewer.c +++ b/src/remote-viewer.c @@ -36,7 +36,9 @@ #endif #ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER #include <spice-controller.h> +#endif #include "virt-viewer-session-spice.h" #endif @@ -53,7 +55,7 @@ #endif struct _RemoteViewerPrivate { -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER SpiceCtrlController *controller; SpiceCtrlForeignMenu *ctrl_foreign_menu; #endif @@ -82,7 +84,7 @@ static OvirtVm * choose_vm(GtkWindow *main_window, #endif static gboolean remote_viewer_start(VirtViewerApp *self, GError **error); -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER static gboolean remote_viewer_activate(VirtViewerApp *self, GError **error); static void remote_viewer_window_added(GtkApplication *app, GtkWindow *w); static void spice_foreign_menu_updated(RemoteViewer *self); @@ -97,7 +99,7 @@ remote_viewer_dispose (GObject *object) RemoteViewerPrivate *priv = self->priv; #endif -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER if (priv->controller) { g_object_unref(priv->controller); priv->controller = NULL; @@ -188,7 +190,7 @@ remote_viewer_local_command_line (GApplication *gapp, g_object_set(app, "guri", opt_args[0], NULL); } -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER if (opt_controller) { if (opt_args) { g_printerr(_("\nError: extra arguments given while using Spice controller\n\n")); @@ -259,7 +261,7 @@ remote_viewer_class_init (RemoteViewerClass *klass) app_class->start = remote_viewer_start; app_class->deactivated = remote_viewer_deactivated; app_class->add_option_entries = remote_viewer_add_option_entries; -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER app_class->activate = remote_viewer_activate; gtk_app_class->window_added = remote_viewer_window_added; #else @@ -292,7 +294,23 @@ remote_viewer_new(void) NULL); } -#ifdef HAVE_SPICE_GTK +static SpiceSession * +remote_viewer_get_spice_session(RemoteViewer *self) +{ + VirtViewerSession *vsession = NULL; + SpiceSession *session = NULL; + + g_object_get(self, "session", &vsession, NULL); + g_return_val_if_fail(vsession != NULL, NULL); + + g_object_get(vsession, "spice-session", &session, NULL); + + g_object_unref(vsession); + + return session; +} + +#ifdef HAVE_SPICE_CONTROLLER static void foreign_menu_title_changed(SpiceCtrlForeignMenu *menu G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED, @@ -503,22 +521,6 @@ spice_foreign_menu_updated(RemoteViewer *self) g_list_foreach(windows, spice_foreign_menu_update_each, self); } -static SpiceSession * -remote_viewer_get_spice_session(RemoteViewer *self) -{ - VirtViewerSession *vsession = NULL; - SpiceSession *session = NULL; - - g_object_get(self, "session", &vsession, NULL); - g_return_val_if_fail(vsession != NULL, NULL); - - g_object_get(vsession, "spice-session", &session, NULL); - - g_object_unref(vsession); - - return session; -} - static void app_notified(VirtViewerApp *app, GParamSpec *pspec, @@ -1092,7 +1094,7 @@ remote_viewer_start(VirtViewerApp *app, GError **err) gchar *type = NULL; GError *error = NULL; -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER g_signal_connect(app, "notify", G_CALLBACK(app_notified), self); if (priv->controller) { @@ -1183,7 +1185,7 @@ retry_dialog: } goto cleanup; } -#ifdef HAVE_SPICE_GTK +#ifdef HAVE_SPICE_CONTROLLER } #endif -- 2.9.3 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list