summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/gnome.scm45
-rw-r--r--gnu/packages/patches/geoclue-config.patch25
3 files changed, 71 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 47799230af..f9b58ddaa7 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -413,6 +413,7 @@ dist_patch_DATA = \
gnu/packages/patches/flex-bison-tests.patch \
gnu/packages/patches/gawk-shell.patch \
gnu/packages/patches/gcc-cross-environment-variables.patch \
+ gnu/packages/patches/geoclue-config.patch \
gnu/packages/patches/ghostscript-runpath.patch \
gnu/packages/patches/glib-tests-desktop.patch \
gnu/packages/patches/glib-tests-homedir.patch \
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 80a8043e99..0c6476387a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1897,3 +1897,48 @@ keyboard shortcuts.")
install and generate color profiles to accurately color manage input and
output devices.")
(license license:gpl2+)))
+
+(define-public geoclue
+ (package
+ (name "geoclue")
+ (version "2.1.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.freedesktop.org/software/" name
+ "/releases/" (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0s0ws2bx5g1cbjamxmm448r4n4crha2fwpzm8zbx6cq6qslygmzi"))
+ (patches (list (search-patch "geoclue-config.patch")))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ '(;; The tests want to run the system bus.
+ #:tests? #f
+ #:configure-flags (list ;; Disable bits requiring ModemManager.
+ "--disable-3g-source"
+ "--disable-cdma-source"
+ "--disable-modem-gps-source"
+ "--with-dbus-service-user=geoclue")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before configure patch-/bin/true
+ (lambda _
+ (substitute* "configure"
+ (("/bin/true") (which "true"))))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("glib" ,glib)
+ ("json-glib" ,json-glib)
+ ("libsoup" ,libsoup)))
+ (home-page "http://freedesktop.org/wiki/Software/GeoClue/")
+ (synopsis "Geolocation service")
+ (description "Geoclue is a D-Bus service that provides location
+information. The primary goal of the Geoclue project is to make creating
+location-aware applications as simple as possible, while the secondary goal is
+to ensure that no application can access location information without explicit
+permission from user. ")
+ (license license:gpl2+)))
diff --git a/gnu/packages/patches/geoclue-config.patch b/gnu/packages/patches/geoclue-config.patch
new file mode 100644
index 0000000000..dd35b90be5
--- /dev/null
+++ b/gnu/packages/patches/geoclue-config.patch
@@ -0,0 +1,25 @@
+Allow the configuration file to be specified via an environment variable.
+
+--- geoclue-2.1.10/src/gclue-config.c 2015-04-07 09:50:07.721074380 +0200
++++ geoclue-2.1.10/src/gclue-config.c 2015-04-07 10:27:26.613171960 +0200
+@@ -235,6 +235,11 @@
+ gclue_config_init (GClueConfig *config)
+ {
+ GError *error = NULL;
++ const char *config_file_path;
++
++ config_file_path = g_getenv ("GEOCLUE_CONFIG_FILE");
++ if (config_file_path == NULL)
++ config_file_path = CONFIG_FILE_PATH;
+
+ config->priv =
+ G_TYPE_INSTANCE_GET_PRIVATE (config,
+@@ -242,7 +247,7 @@
+ GClueConfigPrivate);
+ config->priv->key_file = g_key_file_new ();
+ g_key_file_load_from_file (config->priv->key_file,
+- CONFIG_FILE_PATH,
++ config_file_path,
+ 0,
+ &error);
+ if (error != NULL) {