[gnome-software] Make PolicyKit support optional
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Make PolicyKit support optional
- Date: Fri, 29 Jan 2016 16:44:42 +0000 (UTC)
commit 9a3704b21ce5814ea0802d3f223e76a9167f093d
Author: Richard Hughes <richard hughsie com>
Date: Fri Jan 29 16:43:51 2016 +0000
Make PolicyKit support optional
Also, fix up the configure flags to properly abort if --enable is specified and
deps are not found.
configure.ac | 57 ++++++++++++++++++++++++++++++++++++----------
src/gs-update-monitor.c | 15 ++++++++----
2 files changed, 54 insertions(+), 18 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 32448cb..ed41274 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,7 +66,6 @@ PKG_CHECK_MODULES(SQLITE, sqlite3)
PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.51.92)
PKG_CHECK_MODULES(GSETTINGS_DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.11.5)
PKG_CHECK_MODULES(GNOME_DESKTOP, gnome-desktop-3.0 >= 3.17.92)
-PKG_CHECK_MODULES(POLKIT, polkit-gobject-1)
AC_PATH_PROG(APPSTREAM_UTIL, [appstream-util], [unfound])
AC_ARG_ENABLE(man,
[AS_HELP_STRING([--enable-man],
@@ -94,7 +93,6 @@ AC_ARG_ENABLE(packagekit,
[AS_HELP_STRING([--enable-packagekit],
[enable PackageKit support [default=auto]])],,
enable_packagekit=maybe)
-
AS_IF([test "x$enable_packagekit" != "xno"], [
PKG_CHECK_MODULES(PACKAGEKIT,
[packagekit-glib2 >= 1.0.11],
@@ -103,14 +101,43 @@ AS_IF([test "x$enable_packagekit" != "xno"], [
], [
have_packagekit=no
])
+AS_IF([test "x$have_packagekit" = "xyes"], [
+ AC_DEFINE(HAVE_PACKAGEKIT,1,[Build packagekit support])
+], [
+ AS_IF([test "x$enable_packagekit" = "xyes"], [
+ AC_MSG_ERROR([packagekit support requested but 'packagekit-glib2' was not found])
+ ])
+])
AM_CONDITIONAL(HAVE_PACKAGEKIT, test "$have_packagekit" != no)
+# PolicyKit
+AC_ARG_ENABLE(polkit,
+ [AS_HELP_STRING([--enable-polkit],
+ [enable PolicyKit support [default=auto]])],,
+ enable_polkit=maybe)
+
+AS_IF([test "x$enable_polkit" != "xno"], [
+ PKG_CHECK_MODULES(POLKIT,
+ [polkit-gobject-1],
+ [have_polkit=yes],
+ [have_polkit=no])
+], [
+ have_polkit=no
+])
+AS_IF([test "x$have_polkit" = "xyes"], [
+ AC_DEFINE(HAVE_POLKIT,1,[Build polkit support])
+], [
+ AS_IF([test "x$enable_polkit" = "xyes"], [
+ AC_MSG_ERROR([polkit support requested but 'polkit-gobject-1' was not found])
+ ])
+])
+AM_CONDITIONAL(HAVE_POLKIT, test "$have_polkit" != no)
+
# fwupd
AC_ARG_ENABLE(firmware,
[AS_HELP_STRING([--enable-firmware],
[enable firmware support [default=auto]])],,
enable_firmware=maybe)
-
AS_IF([test "x$enable_firmware" != "xno"], [
PKG_CHECK_MODULES(FWUPD,
[fwupd],
@@ -119,13 +146,20 @@ AS_IF([test "x$enable_firmware" != "xno"], [
], [
have_firmware=no
])
+AS_IF([test "x$have_firmware" = "xyes"], [
+ AC_DEFINE(HAVE_FIRMWARE,1,[Build firmware support])
+], [
+ AS_IF([test "x$enable_firmware" = "xyes"], [
+ AC_MSG_ERROR([Firmware support requested but 'fwupd' was not found])
+ ])
+])
+AM_CONDITIONAL(HAVE_FIRMWARE, test x$have_firmware = xyes)
# xdg-app
AC_ARG_ENABLE(xdg-app,
[AS_HELP_STRING([--enable-xdg-app],
[enable xdg-app support [default=auto]])],,
enable_xdg_app=maybe)
-
AS_IF([test "x$enable_xdg_app" != "xno"], [
PKG_CHECK_MODULES(XDG_APP,
[xdg-app >= 0.4.7],
@@ -134,17 +168,14 @@ AS_IF([test "x$enable_xdg_app" != "xno"], [
], [
have_xdg_app=no
])
-AM_CONDITIONAL(HAVE_XDG_APP, test "$have_xdg_app" != no)
-
-AS_IF([test "x$have_firmware" = "xyes"], [
- AC_DEFINE(HAVE_FIRMWARE,1,[Build firmware support])
+AS_IF([test "x$have_xdg_app" = "xyes"], [
+ AC_DEFINE(HAVE_XDG_APP,1,[Build xdg-app support])
], [
- AS_IF([test "x$enable_firmware" = "xyes"], [
- AC_MSG_ERROR([Firmware support requested but 'fwupd' was not found])
+ AS_IF([test "x$enable_xdg_app" = "xyes"], [
+ AC_MSG_ERROR([xdg-app support requested but 'xdg-app' was not found])
])
])
-
-AM_CONDITIONAL(HAVE_FIRMWARE, test x$have_firmware = xyes)
+AM_CONDITIONAL(HAVE_XDG_APP, test "$have_xdg_app" != no)
# Limba
AC_ARG_ENABLE(limba,
@@ -159,7 +190,6 @@ AS_IF([test "x$enable_limba" != "xno"], [
], [
have_limba=no
])
-
AS_IF([test "x$have_limba" = "xyes"], [
AC_DEFINE(HAVE_LIMBA, 1, [Build Limba support])
], [
@@ -214,6 +244,7 @@ echo "
cppflags: ${CPPFLAGS}
Dogtail: ${enable_dogtail}
PackageKit support: ${have_packagekit}
+ PolicyKit support: ${have_polkit}
Firmware support: ${have_firmware}
XDG-APP support: ${have_xdg_app}
"
diff --git a/src/gs-update-monitor.c b/src/gs-update-monitor.c
index ef8f09a..59c3f50 100644
--- a/src/gs-update-monitor.c
+++ b/src/gs-update-monitor.c
@@ -24,9 +24,12 @@
#include <string.h>
#include <glib/gi18n.h>
-#include <polkit/polkit.h>
#include <gsettings-desktop-schemas/gdesktop-enums.h>
+#ifdef HAVE_POLKIT
+#include <polkit/polkit.h>
+#endif
+
#include "gs-update-monitor.h"
#include "gs-plugin-loader.h"
#include "gs-utils.h"
@@ -737,12 +740,12 @@ gs_update_monitor_new (GsApplication *application)
GPermission *
gs_update_monitor_permission_get (void)
{
- static GPermission *permission;
-
- if (!permission)
+ static GPermission *permission = NULL;
+#ifdef HAVE_POLKIT
+ if (permission == NULL)
permission = polkit_permission_new_sync ("org.freedesktop.packagekit.trigger-offline-update",
NULL, NULL, NULL);
-
+#endif
return permission;
}
@@ -753,6 +756,8 @@ gs_update_monitor_is_managed (void)
gboolean managed;
permission = gs_update_monitor_permission_get ();
+ if (permission == NULL)
+ return TRUE;
managed = !g_permission_get_allowed (permission) &&
!g_permission_get_can_acquire (permission);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]