[gconf-editor] Make PolicyKit support optional
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: svn-commits-list gnome org
- Subject: [gconf-editor] Make PolicyKit support optional
- Date: Wed, 6 May 2009 10:06:06 -0400 (EDT)
commit 0d4ecb4e3d191ccd9fef1417524c7fcff7535fe4
Author: Perier Romain <mrpouet tuxfamily org>
Date: Wed May 6 16:03:05 2009 +0200
Make PolicyKit support optional
Make PolictKiy an optional dependency, turned on by default (#579096).
Signed-off-by: Cosimo Cecchi <cosimoc gnome org>
---
configure.in | 25 +++++++++++++++----
src/Makefile.am | 15 ++++++++----
src/gconf-editor-window.c | 57 ++++++++++++++++++++++++++++++++++----------
3 files changed, 74 insertions(+), 23 deletions(-)
diff --git a/configure.in b/configure.in
index c639764..d15ae83 100644
--- a/configure.in
+++ b/configure.in
@@ -34,9 +34,7 @@ changequote([,])dnl
PKG_CHECK_MODULES(GCONF_EDITOR,
gconf-2.0 >= 2.9.2
- gtk+-2.0 >= 2.12.0
- polkit-dbus >= 0.7
- dbus-glib-1 >= 0.71)
+ gtk+-2.0 >= 2.12.0)
if test "$enable_maintainer_mode" = "yes"; then
DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED \
@@ -55,6 +53,22 @@ GNOME_COMMON_INIT
GNOME_COMPILE_WARNINGS([maximum])
GNOME_MAINTAINER_MODE_DEFINES
+dnl Enable or not the policykit support
+AC_ARG_WITH([policykit],
+ AC_HELP_STRING([--with-policykit],
+ [Compile with policykit support @<:@default=yes@:>@]),
+ [with_polkit=$withval],
+ [with_polkit=yes])
+
+if test x$with_polkit = xyes; then
+ AC_DEFINE([HAVE_POLICYKIT], 1, [PolicyKit support is required])
+ PKG_CHECK_MODULES(GCONF_EDITOR_POLKIT,
+ polkit-dbus >= 0.7
+ dbus-glib-1 >= 0.71)
+fi
+
+AM_CONDITIONAL([HAVE_POLICYKIT], [test x$with_polkit = xyes])
+
dnl Get the GConf defaults source, and sed it to make the mandatory source.
GCONF_DEFAULTS_SOURCE=`gconftool-2 --get-default-source`
AC_ARG_WITH(gconf-defaults-source,
@@ -86,5 +100,6 @@ AC_OUTPUT
echo "
Configuration Sources:
-GConf default values source: ${GCONF_DEFAULTS_SOURCE}
-GConf mandatory values source: ${GCONF_MANDATORY_SOURCE}"
+GConf default values source: ${GCONF_DEFAULTS_SOURCE}
+GConf mandatory values source: ${GCONF_MANDATORY_SOURCE}
+PolicyKit support: ${with_polkit}"
diff --git a/src/Makefile.am b/src/Makefile.am
index ae5cef3..193db21 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,14 +3,15 @@ INCLUDES = \
-DDATADIR=\""$(pkgdatadir)"\" \
-DICONDIR="\"$(pkgdatadir)/icons\"" \
$(DISABLE_DEPRECATED_CFLAGS) \
- $(GCONF_EDITOR_CFLAGS)
+ $(GCONF_EDITOR_CFLAGS) \
+ $(GCONF_EDITOR_POLKIT_CFLAGS)
bin_PROGRAMS = gconf-editor
gconf_editor_built_headers = gconf-marshal.h
gconf_editor_built_cfiles = gconf-marshal.c
-gconf_editor_SOURCES = \
+gconf_editor_SOURCES = \
gconf-bookmarks.c \
gconf-bookmarks.h \
gconf-bookmarks-dialog.c \
@@ -33,8 +34,6 @@ gconf_editor_SOURCES = \
gconf-util.h \
gedit-output-window.c \
gedit-output-window.h \
- gconf-policykit.c \
- gconf-policykit.h \
gconf-search.h \
gconf-search.c \
gconf-search-dialog.h \
@@ -43,6 +42,11 @@ gconf_editor_SOURCES = \
$(gconf_editor_built_headers) \
$(gconf_editor_built_cfiles)
+if HAVE_POLICYKIT
+gconf_editor_SOURCES += gconf-policykit.h \
+ gconf-policykit.c
+endif
+
## we just punt on built sources, and check them into svn, manually updating
## when required.
regenerate-built-sources:
@@ -54,7 +58,8 @@ regenerate-built-sources:
gconf_editor_LDADD = \
- $(GCONF_EDITOR_LIBS)
+ $(GCONF_EDITOR_LIBS) \
+ $(GCONF_EDITOR_POLKIT_LIBS)
EXTRA_DIST = \
gconf-marshal.list
diff --git a/src/gconf-editor-window.c b/src/gconf-editor-window.c
index c9ec8f8..733ff7f 100644
--- a/src/gconf-editor-window.c
+++ b/src/gconf-editor-window.c
@@ -27,7 +27,9 @@
#include "gconf-cell-renderer.h"
#include "gconf-editor-application.h"
#include "gconf-key-editor.h"
-#include "gconf-policykit.h"
+#ifdef HAVE_POLICYKIT
+# include "gconf-policykit.h"
+#endif
#include "gconf-stock-icons.h"
#include "gconf-util.h"
#include "gedit-output-window.h"
@@ -640,26 +642,30 @@ gconf_editor_window_row_expanded (GtkTreeView *tree_view,
gdk_display_flush (gtk_widget_get_display (GTK_WIDGET (gconfwindow)));
}
+#ifdef HAVE_POLICYKIT
static void
gconf_editor_popup_policykit_callback (GtkWindow *window, GError *error)
{
if (error)
gconf_editor_window_popup_error_dialog (window, _("Could not set value. Error was:\n%s"), error);
}
+#endif
static void
gconf_editor_popup_window_set_as_default (GtkAction *action, GtkWidget *callback_data)
{
GConfEditorWindow *gconfwindow = GCONF_EDITOR_WINDOW (callback_data);
- GtkWindow *window = GTK_WINDOW (callback_data);
GtkTreeIter iter;
GConfValue *value;
char *path = NULL;
+
+#ifdef HAVE_POLICYKIT
+ GtkWindow *window = GTK_WINDOW (callback_data);
gboolean can_use_pk;
can_use_pk = (gconfwindow->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL);
-
+#endif
gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (gconfwindow->list_view)),
NULL, &iter);
gtk_tree_model_get (gconfwindow->sorted_list_model, &iter,
@@ -680,12 +686,13 @@ gconf_editor_popup_window_set_as_default (GtkAction *action, GtkWidget *callback
if (!error)
return;
-
+#ifdef HAVE_POLICYKIT
if (!can_use_pk)
gconf_editor_window_popup_error_dialog (window, _("Could not sync value. Error was:\n%s"), error);
+#endif
}
}
-
+#ifdef HAVE_POLICYKIT
if (can_use_pk) {
gconf_client_suggest_sync (gconfwindow->client, NULL);
gconf_pk_set_default_async (path,
@@ -693,21 +700,23 @@ gconf_editor_popup_window_set_as_default (GtkAction *action, GtkWidget *callback
(GFunc) gconf_editor_popup_policykit_callback,
g_object_ref (window), g_object_unref);
}
+#endif
}
static void
gconf_editor_popup_window_set_as_mandatory (GtkAction *action, GtkWidget *callback_data)
{
GConfEditorWindow *gconfwindow = GCONF_EDITOR_WINDOW (callback_data);
- GtkWindow *window = GTK_WINDOW (callback_data);
GtkTreeIter iter;
GConfValue *value;
char *path = NULL;
+#ifdef HAVE_POLICYKIT
+ GtkWindow *window = GTK_WINDOW (callback_data);
gboolean can_use_pk;
can_use_pk = (gconfwindow->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL);
-
+#endif
gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (gconfwindow->list_view)),
NULL, &iter);
gtk_tree_model_get (gconfwindow->sorted_list_model, &iter,
@@ -728,12 +737,13 @@ gconf_editor_popup_window_set_as_mandatory (GtkAction *action, GtkWidget *callba
if (!error)
return;
-
+#ifdef HAVE_POLICYKIT
if (!can_use_pk)
gconf_editor_window_popup_error_dialog (window, _("Could not sync value. Error was:\n%s"), error);
+#endif
}
}
-
+#ifdef HAVE_POLICYKIT
if (can_use_pk) {
gconf_client_suggest_sync (gconfwindow->client, NULL);
gconf_pk_set_mandatory_async (path,
@@ -741,6 +751,7 @@ gconf_editor_popup_window_set_as_mandatory (GtkAction *action, GtkWidget *callba
(GFunc) gconf_editor_popup_policykit_callback,
g_object_ref (window), g_object_unref);
}
+#endif
}
static GtkActionEntry entries[] = {
@@ -934,10 +945,20 @@ list_view_button_press_event (GtkTreeView *tree_view, GdkEventButton *event, GCo
window->type != GCONF_EDITOR_WINDOW_TYPE_DEFAULTS);
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->ui_manager, "/GConfKeyPopupMenu/DefaultKey"),
(gconf_util_can_edit_defaults () && window->type != GCONF_EDITOR_WINDOW_TYPE_DEFAULTS) ||
- (gconf_pk_can_set_default () && window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
+#ifdef HAVE_POLICYKIT
+ (gconf_pk_can_set_default () &&
+#else
+ (
+#endif
+ window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->ui_manager, "/GConfKeyPopupMenu/MandatoryKey"),
(gconf_util_can_edit_mandatory () && window->type != GCONF_EDITOR_WINDOW_TYPE_MANDATORY) ||
- (gconf_pk_can_set_mandatory () && window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
+#ifdef HAVE_POLICYKIT
+ (gconf_pk_can_set_mandatory () &&
+#else
+ (
+#endif
+ window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
gtk_tree_path_free (path);
}
@@ -1037,10 +1058,20 @@ gconf_editor_window_list_view_popup_menu (GtkWidget *widget, GConfEditorWindow *
window->type != GCONF_EDITOR_WINDOW_TYPE_DEFAULTS);
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->ui_manager, "/GConfKeyPopupMenu/DefaultKey"),
(gconf_util_can_edit_defaults () && window->type != GCONF_EDITOR_WINDOW_TYPE_DEFAULTS) ||
- (gconf_pk_can_set_default () && window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
+#ifdef HAVE_POLICYKIT
+ (gconf_pk_can_set_default () &&
+#else
+ (
+#endif
+window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->ui_manager, "/GConfKeyPopupMenu/MandatoryKey"),
(gconf_util_can_edit_mandatory () && window->type != GCONF_EDITOR_WINDOW_TYPE_MANDATORY) ||
- (gconf_pk_can_set_mandatory () && window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
+#ifdef HAVE_POLICYKIT
+ (gconf_pk_can_set_mandatory () &&
+#else
+ (
+#endif
+window->type == GCONF_EDITOR_WINDOW_TYPE_NORMAL));
}
else {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]