# 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 * libsoup3.0 * 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.