...
 
Commits (324)
before_script:
- sed -i '/^#\sdeb-src /s/^#//' '/etc/apt/sources.list'
- apt-get update && apt-get build-dep --yes geoclue-2.0
- apt-get install --yes git gobject-introspection libmm-glib-dev wget
- apt-get install --yes libnotify-dev xsltproc gtk-doc-tools python3-pip
- apt-get install --yes ninja-build gettext modemmanager-dev
- pip3 install meson
# Ubuntu 14.04 is not supported, see README for details
#
# FIXME: Also disable gtk-doc on Ubuntu 16.04 cause it fails install. Would be nice to get it fixed.
ubuntu-16.04:
image: ubuntu:xenial
artifacts:
when: always
name: "xenial-${CI_COMMIT_REF_NAME}"
paths:
- "${CI_PROJECT_DIR}/build"
script: meson -Dgtk-doc=false build && ninja -C build && ninja -C build test && ninja -C build install
ubuntu-18.04:
image: ubuntu:bionic
artifacts:
when: always
name: "bionic-${CI_COMMIT_REF_NAME}"
paths:
- "${CI_PROJECT_DIR}/build"
script: meson build && ninja -C build && ninja -C build test && ninja -C build install
ubuntu-18.04-no-backend:
image: ubuntu:bionic
artifacts:
when: always
name: "bionic-no-backend-${CI_COMMIT_REF_NAME}"
paths:
- "${CI_PROJECT_DIR}/build"
script: meson -Denable-backend=false build && ninja -C build && ninja -C build test && ninja -C build install
......@@ -6,7 +6,7 @@ License version 2, or (at your option) any later version.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
Copyright 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
......@@ -296,7 +296,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
Copyright <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -317,7 +317,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision version 69, Copyright year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
......@@ -348,7 +348,7 @@ Public License instead of this License.
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
Copyright 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
......@@ -797,7 +797,7 @@ convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
Copyright <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
......
This diff is collapsed.
# Building Geoclue
- The following are the dependencies needed to build Geoclue2. But If Geoclue2
is already included in your distro/OS, you should be able to use the
package manager's command to install all build depedndancies.
* gio (>= 2.44.0)
* gobject-introspection
* json-glib
* libsoup2.4 (>= 2.42)
* pkg-config
Fedora:
```shell
sudo dnf builddep geoclue2
```
Debian and Ubuntu:
```shell
sudo apt build-dep geoclue-2.0
```
- For a full-fledged build, you also want ModemManager (mm-glib),
avahi-client and avahi-glib. You want the latter two if you want to use the
[geoclue-share app](https://wiki.gnome.org/Apps/GeoclueShare). You also need
libnotify if you want to build the demo agent.
Fedora:
```shell
sudo dnf install ModemManager-devel
sudo dnf install avahi-devel
sudo dnf install avahi-glib-devel
sudo dnf install libnotify-devel
```
Debian and Ubuntu:
```shell
sudo apt install modemmanager-dev
sudo apt install libavahi-client-dev
sudo apt install libavahi-glib-dev
sudo apt install libnotify-dev
```
- [Install meson](https://mesonbuild.com/Getting-meson.html).
- Ensure you have a `geoclue` user on your system. If it already exists, you may
need to modify `/etc/passwd` file to make it a login user account by replacing
`/sbin/nologin` with `/bin/bash` (or the path to your preferred shell).
- Build and install geoclue.
```shell
meson --prefix=/usr --sysconfdir /etc -Ddbus-srv-user=geoclue build
# you may need to pass --libdir=/usr/lib64 on some systems (eg. Fedora)
ninja -C build
sudo ninja -C build install
```
- Then you can run it as:
```shell
sudo su geoclue # Starts a new shell as `geoclue` user
G_MESSAGES_DEBUG=Geoclue /usr/libexec/geoclue
```
If you get the following error, make sure `geoclue` process is not already
running:
```
> Failed to acquire name 'org.freedesktop.GeoClue2' on system bus or lost it
```
- Now you can test if Geoclue is running and working:
```shell
/usr/libexec/geoclue-2.0/demos/where-am-i
```
It will give your current location.
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
NULL =
SUBDIRS = build-aux src data demo po docs
INTLTOOL_FILES = \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
$(NULL)
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update \
po/.intltool-merge-cache \
$(NULL)
DISTCHECK_CONFIGURE_FLAGS= \
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
EXTRA_DIST = \
.version \
COPYING \
$(INTLTOOL_FILES) \
$(NULL)
MAINTAINERCLEANFILES = \
ABOUT-NLS \
aclocal.m4 \
config.h.in \
build-aux/ar-lib \
build-aux/compile \
build-aux/config.guess \
build-aux/config.rpath \
build-aux/config.sub \
build-aux/depcomp \
build-aux/install-sh \
build-aux/ltmain.sh \
build-aux/missing \
build-aux/mkinstalldirs \
m4/intltool.m4 \
m4/libtool.m4 \
m4/ltoptions.m4 \
m4/ltsugar.m4 \
m4/ltversion.m4 \
m4/lt~obsolete.m4 \
po/Makefile.in.in \
po/Makevars.template \
po/Rules-quot \
po/boldquot.sed \
po/en@boldquot.header \
po/en@quot.header \
po/insert-header.sin \
po/quot.sed \
po/remove-potcdate.sin \
$(NULL)
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:
echo $(VERSION) > $@-t && mv $@-t $@
all:
-include $(top_srcdir)/git.mk
GTESTER = gtester # in $PATH for non-GLIB packages
GTESTER_REPORT = gtester-report # in $PATH for non-GLIB packages
# initialize variables for unconditional += appending
TEST_PROGS =
# test: run all tests in cwd and subdirs
test: ${TEST_PROGS}
@test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
@ for subdir in $(SUBDIRS) . ; do \
test "$$subdir" = "." -o "$$subdir" = "po" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done
# test-report: run tests in subdirs and generate report
# perf-report: run tests in subdirs with -m perf and generate report
# full-report: like test-report: with -m perf and -m slow
test-report perf-report full-report: ${TEST_PROGS}
@test -z "${TEST_PROGS}" || { \
case $@ in \
test-report) test_options="-k";; \
perf-report) test_options="-k -m=perf";; \
full-report) test_options="-k -m=perf -m=slow";; \
esac ; \
if test -z "$$GTESTER_LOGDIR" ; then \
${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
elif test -n "${TEST_PROGS}" ; then \
${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
fi ; \
}
@ ignore_logdir=true ; \
if test -z "$$GTESTER_LOGDIR" ; then \
GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
ignore_logdir=false ; \
fi ; \
for subdir in $(SUBDIRS) . ; do \
test "$$subdir" = "." -o "$$subdir" = "po" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done ; \
$$ignore_logdir || { \
echo '<?xml version="1.0"?>' > $@.xml ; \
echo '<report-collection>' >> $@.xml ; \
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
done ; \
echo >> $@.xml ; \
echo '</report-collection>' >> $@.xml ; \
rm -rf "$$GTESTER_LOGDIR"/ ; \
${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
}
.PHONY: test test-report perf-report full-report
# run make test as part of make check
check-local: test
2.5.5
=====
- Plug another leak.
- Fix another buffer overflow.
- Fix WiFi-geolocation that got broken in 2.5.4.
- Put freequently used small strings on the stack to avoid excessive memory
usage.
2.5.4
=====
- Plug a leak that becomes pretty huge after a while of running Geoclue.
- Fix a buffer-overflow.
2.5.3
=====
- Fix a crash.
- Support for GGA messages from more NMEA sources.
- New API to allow automatic server side deletion of client.
- Automatically delete client on server when using GClueSimple.
- Avoid linking to system-installed library.
- Fix library-only build.
- Add manpage for geoclue.conf file.
- Document usage and building of the project.
- Other fixes and improvements.
Contributors:
Benjamin Berg <bberg@redhat.com>
Inzamam <inzamam.15@cse.mrt.ac.lk>
Sachin Chand <schand1997@gmail.com>
Sumera Priyadarsini <sylphrenadin@gmail.com>
Zeeshan Ali <zeeshanak@gnome.org>
2.5.2
=====
- Scan for WiFi networks, greatly improving accuracy of WiFi source.
- Allow multiple clients on the same D-Bus connection and add API for it. This
is mainly targetted for Flatpak location portal.
- Add API for apps to explicitly delete their client objects. Long running
apps, like gnome-settings-daemon and Flatpak location portal, should use that
to ensure Geoclue knows when these apps are not actually using it and hence
it doesn't need to keep running needlessly.
- Restore accidently removed, build of modem sources.
- Update location on connectivity actually changing.
- Try not spamming Mozilla Location Service.
- Fix unexpected exit when non-active clients are connected.
- Fix a check for system apps.
- Use absolute paths for sysconfdir.
- Fix links in docs.
- More debug log.
- A bunch of internal and/or non-functional fixes & improvements.
Dependency-related changes:
- Require glib >= 2.44.
Contributors:
Bastien Nocera <hadess@hadess.net>
Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Laurent Bigonville <bigon@bigon.be>
Valentin Blot <freedesktop-devel@valentinblot.org>
Will Thompson <will@willthompson.co.uk>
Zeeshan Ali <zeenix@collabora.co.uk>
2.5.1
=====
- Fix libgeoclue ABI break in 2.5.0.
- Use absolute paths for libexecdir.
2.5.0
=====
Changes since 2.4.10 that were not included in subsequent 2.4.x releases as
well:
- Drop authorization for system (non-flatpak) apps.
- Switch from autotools to meson build system.
- Use WiFi-based geolocation for city level accuracy.
- Provide Vala API.
- Don't enable all warnings from C compiler by default.
- No need to mark translatable strings in desktop files.
Contributors:
Bastien Nocera <hadess@hadess.net>
Corentin Noël <corentin.noel@collabora.com>
Emmanuele Bassi <ebassi@gnome.org>
Karl-Philipp Richter <krichter722@aol.de>
Laurent Bigonville <bigon@bigon.be>
Nirbheek Chauhan <nirbheek@centricular.com>
Ting-Wei Lan <lantw@src.gnome.org>
Valentin Blot <freedesktop-devel@valentinblot.org>
worldofpeace <worldofpeace@users.noreply.github.com>
Zeeshan Ali <zeenix@collabora.co.uk>
2.4.10
======
- Fix issues introduced by last release 2.4.9:
- a crash on startup.
- Revert the new desktop ID detection code as that turned out to not work for
non-root user that geoclue is supposed to be run as.
- Use systemd's service file to lockdown the geoclue daemon to stop eventual
security problems.
Contributors:
Bastien Nocera <hadess@hadess.net>
Zeeshan Ali <zeenix@collabora.co.uk>
2.4.9
=====
- Modem GPS refresh rate is now based on the location refresh rate of apps.
- Refuse location access if no app-auth agent is registered. This fixes a
security hole where an app requests location access before the agent gets to
register itself and we end up giving out locaiton access even though user has
disabled it.
- Port desktop ID detection to Flatpak >= 0.6.10.
- The default timeout on the service binary is now the same as the service
itself: 5 seconds.
- Demo applications:
- where-am-i now allows setting location refresh-rate.
- Only install demo agent's desktop file if it's enabled.
- Build and install demo agent unless disabled explicitly.
- Autostart the demo agent by default on non-GNOME platforms, since an agent
is required now and no one other than GNOME yet provides one (sigh).
Dependency-related changes:
Bastien Nocera <hadess@hadess.net>
Mathieu Bridon <bochecha@daitauha.fr>
Zeeshan Ali <zeenix@collabora.co.uk>
2.4.8
=====
- Fix threshold for detecting too old location update.
- Explain in the configuration what the applications white-list is meant for.
- Allow instant location updates from modem-based GPS.
- Fix a deadlock case in the helper library.
Dependency-related changes:
Require mm-glib >= 1.6
Valentin Blot <freedesktop-devel@valentinblot.org>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
2.4.7
=====
- Fix a potential crash.
- More verbose warning on invalid accuracy from NMEA source.
2.4.6
=====
- Add to white-list
- gnome-color-panel for "Night Light" functionality.
- gnome-shell for new weather view in the calendar.
- Other minor fixes.
Bastien Nocera <hadess@hadess.net>
Florian Müllner <fmuellner@gnome.org>
Rob Norris <rw_norris@hotmail.com>
2.4.5
=====
- Fix a potential crash.
2.4.4
=====
- Expose location timestamp over D-Bus.
- Add a TimeThreshold property that allows clients to limit location updates by
time.
- Annotate default value of DistanceThreshold property.
- Check for full internet availability before declaring ourselves online.
- Fix autogen.sh against builddir ≠ srcdir.
- Fix a bunch of memory leaks.
- Fix a bunch of build issues.
- Other minor fixes.
Colin Walters <walters@verbum.org>
Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Justin Kim <justin.kim@collabora.com>
Philip Withnall <philip.withnall@collabora.co.uk>
Ting-Wei Lan <lantw@src.gnome.org>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
2.4.3
=====
Fix a crash in the helper library.
2.4.2
=====
- Reliable desktop ID detection for xdg-app. This together with latest
gnome-shell and gnome-control-center, allows for per-application
geolocation access controls.
- Don't require xdg-app applications to pass a valid desktop ID since Geoclue
can automatically detect it.
- Don't allow xdg-app application to become user-authorization agents.
- Correct introspection namespace version for libgeoclue.
- Option to disable the backend build.
- Demo: Provide reason to access location data.
- Demo agent:
- Critical log message on failing to show notification.
- If app provides a reason string in it's desktop file, show that to the user.
Cosimo Cecchi <cosimoc@gnome.org>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
2.4.1
=====
- Add some missing NULL checks to avoid some crashes.
- More reliable method to connect to Avahi from network NMEA source.
- Fix warnings on system log caused by geoclue trying to access D-Bus
properties it does not need.
Ankit <ankitstarski@gmail.com>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
2.4.0
=====
- Add a convenience library to make interacting with Geoclue very easy.
- Put each D-Bus interface description in it's own file. Unified interface file
still provided for backwards compatibility.
Simon McVittie <simon.mcvittie@collabora.co.uk>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
2.3.0
=====
- Add a network NMEA source, which together with this application:
https://wiki.gnome.org/Apps/GeoclueShare
allows you to use the GPS of your Android device on your geoclue-enabled machine.
- Allow root to own the name on the bus, i-e run the service.
- Make use of compass device if available, through iio-proxy.
- Fix a hang on client starting twice.
- More helpful error on agent rejection.
- Improved documentation.
- Do not ship generated D-Bus service files in the tarball.
- Only allow the geoclue user and root to call methods on agents.
- Fix ignoring of valid location updates due to comparison of distances in
different units.
- Correctly handle two consecutive location updates with same timestamp on them.
- Correctly handle late location update.
- Build system fixes:
- Fix detection of gdbus-codegen tool.
- Workaround an intltool issue.
All contributors to this release:
Ankit <ankitstarski@gmail.com>
Bastien Nocera <hadess@hadess.net>
Fabrice Bellet <fabrice@bellet.info>
Laurent Bigonville <bigon@bigon.be>
Philip Withnall <philip.withnall@collabora.co.uk>
Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
2.2.0
=====
......
GeoClue: The Geoinformation Service
===================================
GeoClue is a D-Bus geoinformation service. The goal of the Geoclue project is to
make creating location-aware applications as simple as possible.
Geoclue is Free Software, licensed under GNU GPLv2+.
Geoclue: The Geoinformation Service
===================================
Geoclue is a D-Bus geoinformation service. The goal of the Geoclue project
is to make creating location-aware applications as simple as possible.
Geoclue is Free Software, licensed under GNU GPLv2+.
Geoclue comprises the following functionalities :
- WiFi-based geolocation (accuracy: in meters)
- GPS(A) receivers (accuracy: in centimeters)
- GPS of other devices on the local network, e.g smartphones (accuracy:
in centimeters)
- 3G modems (accuracy: in kilometers, unless modem has GPS)
- GeoIP (accuracy: city-level)
WiFi-based geolocation makes use of
[Mozilla Location Service](https://wiki.mozilla.org/CloudServices/Location).
If geoclue is unable to find you, you can easily fix that by installing
and running a
[simple app](https://wiki.mozilla.org/CloudServices/Location#Contributing) on
your phone. For using phone GPS, you'll need to install the latest version of
[GeoclueShare app](https://github.com/ankitstarski/GeoclueShare/releases)
on your phone (currently, this is supported only on Android devices).
Geoclue was also used for (reverse-)geocoding but that functionality has
been dropped in favour of the
[geocode-glib library](http://ftp.gnome.org/pub/GNOME/sources/geocode-glib/).
# History
Geoclue was started during the GNOME Summit 2006 in Boston. At least
Keith Preston and Tuomas Kuosmanen can be blamed. There was a total rewrite
after version 0.9.
Use tag "0.9" (as in git checkout 0.9) if you need the old code.
There was yet another rewrite that we call geoclue2. The first version to
introduce the re-write was version 1.99.
# Communication and Contribution
- Discussions take place on the
[GNOME Discourse](https://discourse.gnome.org/c/platform).
- The IRC chat for geoclue is on __#gnome-maps__ at irc.gimp.org .
- Issues are tracked on
[Gitlab](https://gitlab.freedesktop.org/geoclue/geoclue/issues).
# Get Source Code
The source code is available as a tar-ball and in a Git repository.
For latest release tarballs, use the `Download` option of Gitlab on the
[tag of your choice](https://gitlab.freedesktop.org/geoclue/geoclue/tags/).
Older (than 2.4.13) releases are available
[here](http://www.freedesktop.org/software/geoclue/releases/2.4/).
Git repository for Geoclue: https://gitlab.freedesktop.org/geoclue/geoclue
# Building Geoclue
The guidelines for building geoclue have been documented
[here](https://gitlab.freedesktop.org/geoclue/geoclue/blob/master/HACKING.md).
# Using Geoclue in an application
- __D-Bus API__: The documentation for using geoclue with D-Bus API is
[here](http://www.freedesktop.org/software/geoclue/docs/).
- __Libgeoclue API documentation__: The documentation is available
[here](https://www.freedesktop.org/software/geoclue/docs/libgeoclue/).
- __C user application__:
[Here](https://gitlab.freedesktop.org/geoclue/geoclue/blob/master/demo/where-am-i.c)
is an example showing a C application that uses
geoclue to locate its user.
#!/bin/sh
set -e # exit on errors
REQUIRED_AUTOMAKE_VERSION=1.9
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
mkdir -p m4
PKG_NAME=GeoClue
git submodule update --init --recursive
gtkdocize
autoreconf -v --force --install
intltoolize -f
if [ -z "$NOCONFIGURE" ]; then
"$srcdir"/configure --enable-maintainer-mode --enable-debug ${1+"$@"}
fi
EXTRA_DIST = \
gclue-enums-template.c \
gclue-enums-template.h \
$(NULL)
-include $(top_srcdir)/git.mk
/*** BEGIN file-header ***/
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
static const G@Type@Value @enum_name@_values[] = {
/*** END value-header ***/
/*** BEGIN value-production ***/
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
/*** END value-production ***/
/*** BEGIN value-tail ***/
{ 0, NULL, NULL }
};
/* Define type-specific symbols */
#undef __GCLUE_IS_ENUM__
#undef __GCLUE_IS_FLAGS__
#define __GCLUE_IS_@TYPE@__
GType
@enum_name@_get_type (void)
{
static volatile gsize g_define_type_id__volatile = 0;
if (g_once_init_enter (&g_define_type_id__volatile)) {
GType g_define_type_id =
g_@type@_register_static (g_intern_static_string ("@EnumName@"),
@enum_name@_values);
g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
}
return g_define_type_id__volatile;
}
/**
* @enum_name@_get_string:
* @val: a @EnumName@.
*
* Gets the nickname string for the #@EnumName@ specified at @val.
*
* Returns: (transfer none): a string with the nickname, or %NULL if not found. Do not free the returned value.
*/
#if defined __GCLUE_IS_ENUM__
const gchar *
@enum_name@_get_string (@EnumName@ val)
{
guint i;
for (i = 0; @enum_name@_values[i].value_nick; i++) {
if (val == @enum_name@_values[i].value)
return @enum_name@_values[i].value_nick;
}
return NULL;
}
#endif /* __GCLUE_IS_ENUM_ */
/**
* @enum_name@_build_string_from_mask:
* @mask: bitmask of @EnumName@ values.
*
* Builds a string containing a comma-separated list of nicknames for
* each #@EnumName@ in @mask.
*
* Returns: (transfer full): a string with the list of nicknames, or %NULL if none given. The returned value should be freed with g_free().
*/
#if defined __GCLUE_IS_FLAGS__
gchar *
@enum_name@_build_string_from_mask (@EnumName@ mask)
{
guint i;
gboolean first = TRUE;
GString *str = NULL;
for (i = 0; @enum_name@_values[i].value_nick; i++) {
/* We also look for exact matches */
if (mask == @enum_name@_values[i].value) {
if (str)
g_string_free (str, TRUE);
return g_strdup (@enum_name@_values[i].value_nick);
}
/* Build list with single-bit masks */
if (mask & @enum_name@_values[i].value) {
guint c;
gulong number = @enum_name@_values[i].value;
for (c = 0; number; c++)
number &= number - 1;
if (c == 1) {
if (!str)
str = g_string_new ("");
g_string_append_printf (str, "%s%s",
first ? "" : ", ",
@enum_name@_values[i].value_nick);
if (first)
first = FALSE;
}
}
}
return (str ? g_string_free (str, FALSE) : NULL);
}
#endif /* __GCLUE_IS_FLAGS__ */
/*** END value-tail ***/
/*** BEGIN file-tail ***/
/*** END file-tail ***/
/*** BEGIN file-header ***/
#include <glib-object.h>
G_BEGIN_DECLS
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
GType @enum_name@_get_type (void) G_GNUC_CONST;
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
/* Define type-specific symbols */
#undef __GCLUE_IS_ENUM__
#undef __GCLUE_IS_FLAGS__
#define __GCLUE_IS_@TYPE@__
#if defined __GCLUE_IS_ENUM__
const gchar *@enum_name@_get_string (@EnumName@ val);
#endif
#if defined __GCLUE_IS_FLAGS__
gchar *@enum_name@_build_string_from_mask (@EnumName@ mask);
#endif
/*** END value-header ***/
/*** BEGIN file-tail ***/
G_END_DECLS
/*** END file-tail ***/
AC_PREREQ([2.63])
AC_INIT([geoclue],
[2.2.0],
[http://bugs.freedesktop.org/enter_bug.cgi?product=GeoClue],
[geoclue],
[http://www.freedesktop.org/wiki/Software/GeoClue])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.11 dist-xz no-dist-gzip tar-ustar foreign -Wall -Werror -Wno-portability])
AM_MAINTAINER_MODE([enable])
AM_SILENT_RULES([yes])
AC_SUBST([GEOCLUE_API_VERSION], [2.0])
# Check for programs
AC_PROG_CC
AM_PROG_CC_C_O
AM_PROG_AR
AC_CHECK_TOOL([DESKTOP_FILE_VALIDATE], [desktop-file-validate], [/bin/true])
# Initialize libtool
LT_PREREQ([2.2])
LT_INIT([disable-static])
# Pkg-config
PKG_PROG_PKG_CONFIG([0.22])
# i18 support
IT_PROG_INTLTOOL(0.40.0)
GETTEXT_PACKAGE=AC_PACKAGE_NAME
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
GLIB_MIN_VERSION=2.34.0
JSON_GLIB_MIN_VERSION=0.14
LIBMM_GLIB_MIN_VERSION=1.0
LIBSOUP_MIN_VERSION=2.42
AVAHI_MIN_VERSION=0.6.10
AC_CHECK_LIB([m],[sin])
dnl
dnl Documentation
dnl
GTK_DOC_CHECK(1.0)
PKG_CHECK_MODULES(GEOCLUE, [
glib-2.0 >= $GLIB_MIN_VERSION
gio-2.0 >= $GLIB_MIN_VERSION
gio-unix-2.0 >= $GLIB_MIN_VERSION
json-glib-1.0 >= $JSON_GLIB_MIN_VERSION
libsoup-2.4 >= $LIBSOUP_MIN_VERSION
])
# 3G source
AC_ARG_ENABLE(3g-source,
AS_HELP_STRING([--disable-3g-source], [Disable 3G backend (requires ModemManager)]),
[build_3g_source=$enableval], [build_3g_source=yes])
if test "x$build_3g_source" = "xyes"; then
build_modem_source=yes
AC_DEFINE([GCLUE_USE_3G_SOURCE], [1], [Build 3G source?])
else
AC_DEFINE([GCLUE_USE_3G_SOURCE], [0], [Build 3G source?])
fi
AM_CONDITIONAL([BUILD_3G_SOURCE], [test "x$build_3g_source" = "xyes"])
# CDMA source
AC_ARG_ENABLE(cdma-source,
AS_HELP_STRING([--disable-cdma-source], [Disable CDMA backend (requires ModemManager)]),
[build_cdma_source=$enableval], [build_cdma_source=yes])
if test "x$build_cdma_source" = "xyes"; then
build_modem_source=yes
AC_DEFINE([GCLUE_USE_CDMA_SOURCE], [1], [Build CDMA source?])
else
AC_DEFINE([GCLUE_USE_CDMA_SOURCE], [0], [Build CDMA source?])
fi
AM_CONDITIONAL([BUILD_CDMA_SOURCE], [test "x$build_cdma_source" = "xyes"])
# GPS source
AC_ARG_ENABLE(modem-gps-source,
AS_HELP_STRING([--disable-modem-gps-source], [Disable modem GPS backend (requires ModemManager)]),
[build_modem_gps_source=$enableval], [build_modem_gps_source=yes])
if test "x$build_modem_gps_source" = "xyes"; then
build_modem_source=yes
AC_DEFINE([GCLUE_USE_MODEM_GPS_SOURCE], [1], [Build modem GPS source?])
else
AC_DEFINE([GCLUE_USE_MODEM_GPS_SOURCE], [0], [Build modem GPS source?])
fi
AM_CONDITIONAL([BUILD_MODEM_GPS_SOURCE], [test "x$build_modem_gps_source" = "xyes"])
# Modem source is used in common by GPS, 3G and CDMA sources
if test "x$build_modem_source" = "xyes"; then
require_modemmanager=yes
fi
AM_CONDITIONAL([BUILD_MODEM_SOURCE], [test "x$build_modem_source" = "xyes"])
# Check for ModemManager if one of the sources requires it
if test "x$require_modemmanager" = "xyes"; then
PKG_CHECK_MODULES(ModemManager, mm-glib >= $LIBMM_GLIB_MIN_VERSION)
fi
# Network NMEA Source
AC_ARG_ENABLE(nmea-source,
AS_HELP_STRING([--disable-nmea-source],
[Disable network NMEA source (requires avahi-client and avahi-glib)]),
[build_nmea_source=$enableval], [build_nmea_source=yes])
if test "x$build_nmea_source" = "xyes"; then
AC_DEFINE([GCLUE_USE_NMEA_SOURCE], [1], [Build network NMEA source?])
else
AC_DEFINE([GCLUE_USE_NMEA_SOURCE], [0], [Build network NMEA source?])
fi
AM_CONDITIONAL([BUILD_NMEA_SOURCE], [test "x$build_nmea_source" = "xyes"])
if test "x$build_nmea_source" = "xyes"; then
# Check for avahi-client and avahi-glib
PKG_CHECK_MODULES(NMEA_SOURCE, [
avahi-client >= $AVAHI_MIN_VERSION
avahi-glib >= $AVAHI_MIN_VERSION])
fi
# Demo agent
AC_ARG_ENABLE(demo-agent,
AS_HELP_STRING([--enable-demo-agent=yes|no],
[Build demo agent (default=no)]),
[enable_demo_agent=$enableval],
[enable_demo_agent=no])
if test "x$enable_demo_agent" = "xyes"; then
PKG_CHECK_MODULES(DEMO_AGENT, [
glib-2.0 >= $GLIB_MIN_VERSION
gio-2.0 >= $GLIB_MIN_VERSION
gio-unix-2.0 >= $GLIB_MIN_VERSION
libnotify])
else
AC_DEFINE([BUILD_DEMO_AGENT], [0], [Build demo agent?])
fi
AM_CONDITIONAL([BUILD_DEMO_AGENT], [test "x$enable_demo_agent" = "xyes"])
GNOME_COMPILE_WARNINGS([maximum])
dnl Debugging
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],[enable debugging]),,
enable_debug=no)
if test "x$enable_debug" = "xyes"; then
CFLAGS="$CFLAGS -O0 -ggdb3"
fi
# DBus system directory
AC_ARG_WITH(dbus-sys-dir, AS_HELP_STRING([--with-dbus-sys-dir=DIR], [where D-BUS system.d directory is]))
if test -n "$with_dbus_sys_dir" ; then
DBUS_SYS_DIR="$with_dbus_sys_dir"
else
DBUS_SYS_DIR="${sysconfdir}/dbus-1/system.d"
fi
AC_SUBST(DBUS_SYS_DIR)
AC_ARG_WITH(dbus-service-user,
AS_HELP_STRING([--with-dbus-service-user=USER],
[The USER (existing) as which the service will run (default: root)]),
dbus_srv_user="$with_dbus_service_user",
dbus_srv_user="root")
AC_SUBST(dbus_srv_user)
# gdbus-codegen
if test x$cross_compiling != xyes; then
GDBUS_CODEGEN=`$PKG_CONFIG --variable gdbus_codegen gio-2.0`
else
AC_PATH_PROG([GDBUS_CODEGEN],[gdbus-codegen])
fi
AC_SUBST([GDBUS_CODEGEN])
if test "x$GDBUS_CODEGEN" = "x"; then
ifelse([$2],,[AC_MSG_ERROR([gdbus-codegen not found.])],[$2])
else
ifelse([$1],,[:],[$1])
fi
# systemd
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[],
[with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
if test "x$with_systemdsystemunitdir" != "xno"; then
AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
fi
AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$systemdsystemunitdir"])
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
AC_SUBST(GLIB_MKENUMS)
GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
AC_SUBST(GLIB_GENMARSHAL)
AC_CONFIG_FILES([
Makefile
build-aux/Makefile
src/Makefile
src/geoclue-$GEOCLUE_API_VERSION.pc:src/geoclue.pc.in
src/agent/Makefile
src/geocode-glib/Makefile
src/public-api/Makefile
po/Makefile.in
data/org.freedesktop.GeoClue2.conf
data/org.freedesktop.GeoClue2.Agent.conf
data/Makefile
demo/Makefile
docs/Makefile
docs/version.xml
])
AC_OUTPUT
dnl ==========================================================================
AC_MSG_NOTICE([
GeoClue $VERSION
=================
prefix: ${prefix}
c compiler: ${CC} ${CFLAGS}
systemdsystemunitdir: ${systemdsystemunitdir}
3G source: ${build_3g_source}
CDMA source: ${build_cdma_source}
Modem GPS source: ${build_modem_gps_source}
Network NMEA source: ${build_nmea_source}
])
systemconfdir = $(sysconfdir)/geoclue
systemconf_in_files = geoclue.conf.in
systemconf_DATA = $(systemconf_in_files:.conf.in=.conf)
if BUILD_DEMO_AGENT
$(systemconf_DATA): $(systemconf_in_files) Makefile
@sed -e \
"s|\@demo_agent\@|geoclue-demo-agent;|" \
$< > $@
else
$(systemconf_DATA): $(systemconf_in_files) Makefile
@sed -e "s|\@demo_agent\@||" $< > $@
endif
servicedir = $(datadir)/dbus-1/system-services
service_in_files = org.freedesktop.GeoClue2.service.in
service_DATA = $(service_in_files:.service.in=.service)
$(service_DATA): $(service_in_files) Makefile
@sed -e "s|\@libexecdir\@|$(libexecdir)|" $< | \
sed -e "s|\@dbus_srv_user\@|$(dbus_srv_user)|" > $@
# DBus Service policy file
dbusservicedir = $(DBUS_SYS_DIR)
dbusservice_DATA = org.freedesktop.GeoClue2.conf \
org.freedesktop.GeoClue2.Agent.conf
systemdservice_in_files = geoclue.service.in
if HAVE_SYSTEMD
systemdservicedir = $(systemdsystemunitdir)
systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
$(systemdservice_DATA): $(systemdservice_in_files) Makefile
@sed -e "s|\@libexecdir\@|$(libexecdir)|" $< | \
sed -e "s|\@dbus_srv_user\@|$(dbus_srv_user)|" > $@
endif
DISTCLEANFILES = $(service_DATA) \
$(systemconf_DATA) \
$(dbusservice_DATA) \
$(systemdservice_DATA)
EXTRA_DIST = $(service_in_files) \
$(systemdservice_in_files) \
$(systemconf_in_files)
-include $(top_srcdir)/git.mk
.TH "GEOCLUE CONFIGURATION" 5
.SH NAME
geoclue.conf
\-
geoclue configuration parameters
.SH SYNOPSIS
.B @sysconfdir@/geoclue/geoclue.conf
.SH DESCRIPTION
.ad
.fi
The geoclue geoclue.conf configuration file specifies parameters that
control the operation of geoclue.
.PP
All configurations settings below are mandatory and the defaults are
what you see before you edit them in geoclue.conf. If you want to keep the default
values around, copy and comment out the appropriate line(s) before
changing them.
.SH AGENT CONFIGURATION OPTIONS
.B \fI[agent]
is used to begin the agent configuration.
.IP \fBwhitelist
.br
Whitelist of desktop IDs (without .desktop part) of all agents we recognise,
separated by a ';'.
.IP
.B whitelist=geoclue-demo-agent;gnome-shell;io.elementary.desktop.agent-geoclue2
.br
.IP \fB[network-nmea]
.br
Network NMEA source configuration options
.IP
.B \fBenable=true
.br
Fetch location from NMEA sources on local network?
.br
.IP \fB[3G]
.br
3G source configuration options
.IP
.B \fBenable=true
.br
Enable 3G source
.br
.IP \fB[cdma]
.br
CDMA source configuration options
.IP
.B \fBenable=true
.br
Enable CDMA source
.br
.IP \fB[modem-gps]
.br
Modem GPS source configuration options
.IP
.B \fBenable=true
.br
Enable Modem-GPS source
.br
.IP \fB[wifi]
.br
WiFi source configuration options
.IP
.B \fBenable=true
.br
Enable WiFi source
.IP
.B url=\fIhttps://location.services.mozilla.com/v1/geolocate?key=geoclue
.br
URL to the wifi geolocation service. The key can currenty be anything, just
needs to be present but that is likely going to change in future.
.IP
.B submit-data=false
Submit data to Mozilla Location Service
.br
If set to true, geoclue will automatically submit network data to Mozilla
each time it gets a GPS lock.
.IP
.B submission-url=\fIhttps://location.services.mozilla.com/v1/submit?key=geoclue
.br
URL to submission API of Mozilla Location Service
.IP
.B submission-nick=geoclue
.br
A nickname to submit network data with. A nickname must be 2-32 characters long.
.br
.SH APPLICATION CONFIGURATION OPTIONS
Having an entry here for an application with
.B allowed=true
means that geoclue will not ask agent to authorize the application. This is to
ensure that applications with built-in authorization mechanism (e.g web
browsers) do not have to be bound to agents.
.PP
If your application is denied access to location information and your
operating system doesn't provide any mechanism to change that, it is
likely a bug in your operation system (or geoclue). The solution is to
report the issue with all details, rather than adding your application
to this list.
.IP Format:
.RS
.B [random-app]
.br
Desktop ID of application without .desktop part
.PP
.B allowed=true|false
.br
Allowed access to location information?
.PP
.B system=true|false
.br
Is application a system component?
.PP
.B users=
.br
List of UIDs of all users for which this application is allowed location
info access, separate by ';'. Keep it empty for allowing it for all users.
.RE
.IP Examples:
.RS
.B [gnome-datetime-panel]
.br
allowed=true
.br
system=true
.br
users=
.PP
.B [gnome-color-panel]
.br
allowed=true
.br
system=true
.br
users=
.PP
.B [org.gnome.Shell]
.br
allowed=true
.br
system=true
.br
users=
.PP
.B [io.elementary.desktop.agent-geoclue2]
.br
allowed=true
.br
system=true
.br
users=
.PP
.B [epiphany]
.br
allowed=true
.br
system=false
.br
users=
.PP
.B [firefox]
.br
allowed=true
.br
system=false
.br
users=
.br
.SH AUTHOR
.na
.nf
Sachin Chand
# Configuration file for Geoclue
#
# NOTE: All configurations settings below are mandatory and the defaults are
# what you see before you edit them. If you want to keep the default
# values around, copy and comment out the appropriate line(s) before
# changing them.
# Agent configuration options
[agent]
# Whitelist of desktop IDs (without .desktop part) of all agents we recognise,
# separated by a ';'.
whitelist=@demo_agent@gnome-shell
whitelist=@demo_agent@gnome-shell;io.elementary.desktop.agent-geoclue2
# Network NMEA source configuration options
[network-nmea]
......@@ -13,16 +18,42 @@ whitelist=@demo_agent@gnome-shell
# Fetch location from NMEA sources on local network?
enable=true
# 3G source configuration options
[3g]
# Enable 3G source
enable=true
# CDMA source configuration options
[cdma]
# Enable CDMA source
enable=true
# Modem GPS source configuration options
[modem-gps]
# Enable Modem-GPS source
enable=true
# WiFi source configuration options
[wifi]
# URL to the wifi geolocation service. The key can currenty be anything, just
# needs to be present but that is likely going to change in future.
url=https://location.services.mozilla.com/v1/geolocate?key=geoclue
# Enable WiFi source
enable=true
# To use the Google geolocation service instead of mozilla's, simply uncomment
# this url while changing API_KEY to your Google API key and comment out or
# remove the url above.
# URL to the WiFi geolocation service. If not set, defaults to Mozilla's
# Location Service with a hardcoded key. To use a custom key, uncomment this URL
# while changing YOUR_KEY to your MLS API key.
#url=https://location.services.mozilla.com/v1/geolocate?key=YOUR_KEY
# To use the Google geolocation service instead of Mozilla's, uncomment this URL
# while changing YOUR_KEY to your Google API key.
#
# WARNING: Please make sure that you are complying with the Google's ToS and
# policies if you uncomment this:
#
# https://developers.google.com/maps/documentation/geolocation/policies
#
#url=https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_KEY
......@@ -32,21 +63,26 @@ url=https://location.services.mozilla.com/v1/geolocate?key=geoclue
#
submit-data=false
# URL to submission API of Mozilla Location Service
submission-url=https://location.services.mozilla.com/v1/submit?key=geoclue
# URL to submission API of Mozilla Location Service. If not set, defaults to
# Mozilla's API with a hardcoded key. To use a custom key, uncomment this URL
# while changing YOUR_KEY to your MLS API key.
#submission-url=https://location.services.mozilla.com/v1/submit?key=YOUR_KEY
# A nickname to submit network data with. This is currently used for leaderboard:
# https://location.services.mozilla.com/leaders
# A nickname must be 2-32 characters long.
# A nickname to submit network data with. A nickname must be 2-32 characters long.
submission-nick=geoclue
# Application configuration options
#
# NOTE: Having an entry here for an application with allowed=true means that
# geoclue will not ask agent to authorize the application. This is to
# ensure that system components and applications with built-in
# authorization mechanism (e.g web browsers) do not have to be bound to
# agents.
# ensure that applications with built-in authorization mechanism (e.g web
# browsers) do not have to be bound to agents.
#
# If your application is denied access to location information and your
# operating system doesn't provide any mechanism to change that, it is
# likely a bug in your operation system (or geoclue). The solution is to
# report the issue with all details, rather than adding your application
# to this list.
#
# Format:
#
......@@ -68,6 +104,21 @@ allowed=true
system=true
users=
[gnome-color-panel]
allowed=true
system=true
users=
[org.gnome.Shell]
allowed=true
system=true
users=
[io.elementary.desktop.agent-geoclue2]
allowed=true
system=true
users=
[epiphany]
allowed=true
system=false
......
......@@ -5,4 +5,26 @@ Description=Location Lookup Service
Type=dbus
BusName=org.freedesktop.GeoClue2
User=@dbus_srv_user@
ExecStart=@libexecdir@/geoclue -t 5
ExecStart=@libexecdir@/geoclue
# Filesystem lockdown
ProtectSystem=strict
ProtectKernelTunables=true
ProtectControlGroups=true
ProtectHome=true
PrivateTmp=true
# Network
PrivateNetwork=false
# Execute Mappings
MemoryDenyWriteExecute=true
# Modules
ProtectKernelModules=true
# Real-time
RestrictRealtime=true
# Privilege escalation
NoNewPrivileges=true
if get_option('enable-backend')
conf = configuration_data()
if get_option('demo-agent')
conf.set('demo_agent', 'geoclue-demo-agent;')
else
conf.set('demo_agent', '')
endif
conf_dir = join_paths(sysconfdir, 'geoclue')
configure_file(output: 'geoclue.conf',
input: 'geoclue.conf.in',
configuration: conf,
install_dir: conf_dir)
conf = configuration_data()
conf.set('libexecdir', libexecdir)
conf.set('dbus_srv_user', get_option('dbus-srv-user'))
conf.set('sysconfdir', sysconfdir)
service_dir = join_paths(datadir, 'dbus-1', 'system-services')
configure_file(output: 'org.freedesktop.GeoClue2.service',
input: 'org.freedesktop.GeoClue2.service.in',
configuration: conf,
install_dir: service_dir)
man_file = configure_file(output: 'geoclue.5',
input: 'geoclue.5.in',
configuration: conf)
install_man(man_file)
# DBus Service policy file
dbus_service_dir = get_option('dbus-sys-dir')
if dbus_service_dir == ''
dbus_service_dir = join_paths(sysconfdir, 'dbus-1', 'system.d')
endif
configure_file(output: 'org.freedesktop.GeoClue2.conf',
input: 'org.freedesktop.GeoClue2.conf.in',
configuration: conf,
install_dir: dbus_service_dir)
configure_file(output: 'org.freedesktop.GeoClue2.Agent.conf',
input: 'org.freedesktop.GeoClue2.Agent.conf.in',
configuration: conf,
install_dir: dbus_service_dir)
systemd_unit_dir = get_option('systemd-system-unit-dir')
if systemd_unit_dir == ''
dep = dependency('systemd', required: false)
if dep.found()
systemd_unit_dir = dep.get_pkgconfig_variable('systemdsystemunitdir')
endif
endif
if systemd_unit_dir != ''
configure_file(output: 'geoclue.service',
input: 'geoclue.service.in',
configuration: conf,
install_dir: systemd_unit_dir)
endif
endif
......@@ -8,4 +8,11 @@
<allow send_interface="org.freedesktop.DBus.Properties"
send_path="/org/freedesktop/GeoClue2/Agent"/>
</policy>
<policy user="root">
<allow send_interface="org.freedesktop.GeoClue2.Agent"
send_path="/org/freedesktop/GeoClue2/Agent"/>
<allow send_interface="org.freedesktop.DBus.Properties"
send_path="/org/freedesktop/GeoClue2/Agent"/>
</policy>
</busconfig>
......@@ -26,6 +26,11 @@
<allow send_destination="fi.w1.wpa_supplicant1"
send_interface="org.freedesktop.DBus.Introspectable"/>
<allow send_destination="fi.w1.wpa_supplicant1"
send_interface="fi.w1.wpa_supplicant1.Interface"
send_type="method_call"
send_member="Scan"/>
</policy>
<policy user="root">
......
[D-BUS Service]
Name=org.freedesktop.GeoClue2
Exec=@libexecdir@/geoclue -t 5
Exec=@libexecdir@/geoclue
User=@dbus_srv_user@
SystemdService=geoclue.service
demodir = $(libexecdir)/geoclue-2.0/demos
demo_PROGRAMS = where-am-i
where_am_i_SOURCES = where-am-i.c
where_am_i_CFLAGS = $(GEOCLUE_CFLAGS) \
$(WARN_CFLAGS) \
-DLOCALEDIR="\"$(datadir)/locale\""
where_am_i_LDADD = $(GEOCLUE_LIBS)
appsdir = $(datadir)/applications
apps_DATA = geoclue-where-am-i.desktop \
geoclue-demo-agent.desktop
@INTLTOOL_DESKTOP_RULE@
geoclue-where-am-i.desktop.in: geoclue-where-am-i.desktop.in.in
$(AM_V_GEN) sed -e "s|[@]libexecdir@|$(libexecdir)|g" $< > $@
geoclue-demo-agent.desktop.in: geoclue-demo-agent.desktop.in.in
$(AM_V_GEN) sed -e "s|[@]libexecdir@|$(libexecdir)|g" $< > $@
if BUILD_DEMO_AGENT
demo_PROGRAMS += agent
endif # BUILD_DEMO_AGENT
agent_SOURCES = $(BUILT_SOURCES) \
gclue-service-agent.h \
gclue-service-agent.c \
agent.c \
$(NULL)
agent_CFLAGS = $(DEMO_AGENT_CFLAGS) \
$(WARN_CFLAGS) \