[gvfs] build: Make GCR optional



commit 600558ec7927d75ea045f3093a7db0a4778c76fe
Author: Ross Lagerwall <rosslagerwall gmail com>
Date:   Thu Jun 11 23:05:08 2015 +0100

    build: Make GCR optional
    
    Make using GCR optional by compiling with --disable-gcr. This makes
    gvfs strict when checking SSL certificates, so don't silently disable it
    if the library is not found, only disable it if --disable-gcr is given.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=750706

 configure.ac             |   13 ++++++++++++-
 daemon/gvfsdaemonutils.c |   14 ++++++++++++++
 daemon/gvfsdaemonutils.h |    2 --
 3 files changed, 26 insertions(+), 3 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 93e3374..8459e34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,7 +74,17 @@ AC_SUBST(DBUS_SERVICE_DIR)
 giomodulesdir=$libdir/gio/modules
 AC_SUBST(giomodulesdir)
 
-PKG_CHECK_MODULES(GCR, gcr-base-3)
+dnl *********************
+dnl *** Check for gcr ***
+dnl *********************
+
+AC_ARG_ENABLE(gcr, AS_HELP_STRING([--disable-gcr],[build without gcr]))
+msg_gcr=no
+
+if test "x$enable_gcr" != "xno"; then
+  PKG_CHECK_MODULES(GCR, gcr-base-3, msg_gcr=yes)
+  AC_DEFINE(HAVE_GCR, 1, [Define to 1 if gcr is available])
+fi
 
 dnl ****************************
 dnl *** Checks for intltool  ***
@@ -946,6 +956,7 @@ echo "
        Build udisks2 volume monitor: $msg_udisks2
        Build GOA volume monitor:     $msg_goa
         Use libsystemd-login:         $msg_libsystemd_login
+        Use GCR:                      $msg_gcr
        GNOME Keyring support:        $msg_keyring
        GTK+ support:                 $msg_gtk
        Bash-completion support:      $msg_bash_completion
diff --git a/daemon/gvfsdaemonutils.c b/daemon/gvfsdaemonutils.c
index 7db1841..49999a8 100644
--- a/daemon/gvfsdaemonutils.c
+++ b/daemon/gvfsdaemonutils.c
@@ -35,6 +35,10 @@
 #include <glib/gi18n.h>
 
 #include <gio/gio.h>
+#ifdef HAVE_GCR
+#define GCR_API_SUBJECT_TO_CHANGE
+#include <gcr/gcr-base.h>
+#endif
 #include "gvfsdaemonutils.h"
 #include "gvfsdaemonprotocol.h"
 
@@ -238,6 +242,7 @@ gvfs_seek_type_to_lseek (GSeekType type)
     }
 }
 
+#ifdef HAVE_GCR
 /* Convert GTlsCertificateFlags into a message to display to the user. */
 static char *
 certificate_flags_to_string (GTlsCertificateFlags errors)
@@ -350,3 +355,12 @@ gvfs_accept_certificate (GMountSource *mount_source,
 
   return FALSE;
 }
+#else
+gboolean
+gvfs_accept_certificate (GMountSource *mount_source,
+                         GTlsCertificate *certificate,
+                         GTlsCertificateFlags errors)
+{
+  return FALSE;
+}
+#endif
diff --git a/daemon/gvfsdaemonutils.h b/daemon/gvfsdaemonutils.h
index f28e2ba..73ec0c0 100644
--- a/daemon/gvfsdaemonutils.h
+++ b/daemon/gvfsdaemonutils.h
@@ -25,8 +25,6 @@
 
 #include <glib-object.h>
 #include <gmountsource.h>
-#define GCR_API_SUBJECT_TO_CHANGE
-#include <gcr/gcr-base.h>
 
 G_BEGIN_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]