Currently, usb redirection and policykit are enabled by default,
and configure will error out if the required dependencies cannot
be found. This commit changes the default behaviour, by default
usb redirection/policykit support is automatically enabled/disabled
depending on the availability of the needed dependencies. Passing
--enable-usbredir will error out if the dependencies for usb
redirection cannot be found, ditto for policykit. This should make
things nicer for people running configure or autogen.sh with no
argument.
---
configure.ac | 73 ++++++++++++++++++++++++++++++++++---------------------
gtk/Makefile.am | 8 +----
2 files changed, 47 insertions(+), 34 deletions(-)
diff --git a/configure.ac b/configure.ac
index d7dd1c0..202aa3c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -314,43 +314,60 @@ else
fi
AC_ARG_ENABLE([usbredir],
- AS_HELP_STRING([--enable-usbredir=@<:@yes/no@:>@],
- [Enable usbredir support @<:@default=yes@:>@]),
+ AS_HELP_STRING([--enable-usbredir=@<:@auto/yes/no@:>@],
+ [Enable usbredir support @<:@default=auto@:>@]),
[],
- [enable_usbredir="yes"])
-AC_ARG_ENABLE([polkit],
- AS_HELP_STRING([--enable-polkit=@<:@yes/no@:>@],
- [Enable policykit support (for the usb acl
helper)@<:@default=yes@:>@]),
- [],
- [enable_polkit="yes"])
+ [enable_usbredir="auto"])
if test "x$enable_usbredir" = "xno"; then
AM_CONDITIONAL(WITH_USBREDIR, false)
AM_CONDITIONAL(WITH_POLKIT, false)
else
- PKG_CHECK_MODULES(GUDEV, gudev-1.0)
- PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 1.0.9)
- PKG_CHECK_MODULES(LIBUSBREDIRHOST, libusbredirhost >= 0.3.3)
- AC_DEFINE(USE_USBREDIR, [1], [Define if supporting usbredir proxying])
- AM_CONDITIONAL(WITH_USBREDIR, true)
- if test "x$enable_polkit" = "xno"; then
- AM_CONDITIONAL(WITH_POLKIT, false)
- else
- PKG_CHECK_MODULES(POLKIT, polkit-gobject-1 >= 0.96)
- AC_CHECK_HEADER([acl/libacl.h],,
- AC_MSG_ERROR([cannot find headers for libacl]))
- AC_CHECK_LIB([acl], [acl_get_file], [ACL_LIBS=-lacl] [AC_SUBST(ACL_LIBS)],
- AC_MSG_ERROR([cannot find libacl]))
+ PKG_CHECK_MODULES([USBREDIR],
+ [gudev-1.0 libusb-1.0 >= 1.0.9 libusbredirhost >= 0.3.3],
+ [have_usbredir=yes],
+ [have_usbredir=no])
+ if test x"$have_usbredir" = "xno" && test x"$enable_usbredir" = "xyes"; then
+ AC_MSG_ERROR([usbredir support explicitly requested, but some required
packages are not available])
+ fi
+ if test x"$have_usbredir" = "xyes"; then
+ AC_DEFINE(USE_USBREDIR, [1], [Define if supporting usbredir proxying])
+ fi
+ AM_CONDITIONAL([WITH_USBREDIR], [test x"$have_usbredir" = "xyes"])
+fi
+
+AC_ARG_ENABLE([polkit],
+ AS_HELP_STRING([--enable-polkit=@<:@yes/no@:>@],
+ [Enable policykit support (for the usb acl
helper)@<:@default=yes@:>@]),
+ [],
+ [enable_polkit="auto"])
+
+if test x"$have_usbredir" = "xyes" && test "x$enable_polkit" != "xno"; then
+ have_polkit=yes
+ PKG_CHECK_MODULES([POLKIT], [polkit-gobject-1 >= 0.96],
+ [],
+ [have_polkit=no])
+ AC_CHECK_HEADER([acl/libacl.h], [], [have_polkit=no])
+ AC_CHECK_LIB([acl], [acl_get_file], [ACL_LIBS=-lacl], [have_polkit=no])
+ if test x"$enable_polkit" = "xyes" && test x"$have_polkit" = "xno"; then
+ AC_MSG_ERROR([PolicyKit support explicitly requested, but some required
packages are not available])
+ fi
+
+ if test x"$have_polkit" = "xyes"; then
+ AC_SUBST(ACL_LIBS)
AC_DEFINE(USE_POLKIT, [1], [Define if supporting polkit])
- AM_CONDITIONAL(WITH_POLKIT, true)
- POLICYDIR=`${PKG_CONFIG} polkit-gobject-1 --variable=policydir`
- AC_SUBST(POLICYDIR)
- # Check for polkit_authority_get_sync()
- AC_CHECK_LIB([polkit-gobject-1], [polkit_authority_get_sync],
ac_have_pk_auth_get_sync="1", ac_have_pk_auth_get_sync="0")
- AC_DEFINE_UNQUOTED(HAVE_POLKIT_AUTHORITY_GET_SYNC,
$ac_have_pk_auth_get_sync, [Define if you have a polkit with
polkit_authority_get_sync()])
fi
+ AM_CONDITIONAL([WITH_POLKIT], [test x"$have_polkit" = "xyes"])
+ POLICYDIR=`${PKG_CONFIG} polkit-gobject-1 --variable=policydir`
+ AC_SUBST(POLICYDIR)
+ # Check for polkit_authority_get_sync()
+ AC_CHECK_LIB([polkit-gobject-1], [polkit_authority_get_sync],
ac_have_pk_auth_get_sync="1", ac_have_pk_auth_get_sync="0")
+ AC_DEFINE_UNQUOTED(HAVE_POLKIT_AUTHORITY_GET_SYNC,
$ac_have_pk_auth_get_sync, [Define if you have a polkit with
polkit_authority_get_sync()])
+else
+ AM_CONDITIONAL(WITH_POLKIT, false)
fi
+
AC_ARG_WITH([usb-acl-helper-dir],
AS_HELP_STRING([--with-usb-acl-helper-dir=DIR],
[Directory where the USB ACL helper binary should be
installed]),
@@ -598,7 +615,7 @@ AC_MSG_NOTICE([
Target: ${red_target}
SASL support: ${enable_sasl}
Smartcard support: ${enable_smartcard}
- USB redirection support: ${enable_usbredir}
+ USB redirection support: ${have_usbredir}
Gtk: $GTK_API_VERSION
Now type 'make' to build $PACKAGE
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 043e48f..6f39888 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -78,9 +78,7 @@ SPICE_COMMON_CPPFLAGS = \
$(SASL_CFLAGS) \
$(GST_CFLAGS) \
$(SMARTCARD_CFLAGS) \
- $(GUDEV_CFLAGS) \
- $(LIBUSB_CFLAGS) \
- $(LIBUSBREDIRHOST_CFLAGS) \
+ $(USBREDIR_CFLAGS) \
$(NULL)
AM_CPPFLAGS = \
@@ -170,9 +168,7 @@ libspice_client_glib_2_0_la_LIBADD = \
$(GST_LIBS) \
$(SASL_LIBS) \
$(SMARTCARD_LIBS) \
- $(GUDEV_LIBS) \
- $(LIBUSB_LIBS) \
- $(LIBUSBREDIRHOST_LIBS) \
+ $(USBREDIR_LIBS) \
$(NULL)
if WITH_POLKIT
--
1.7.7.6
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel