diff --git a/.geoclue2.metadata b/.geoclue2.metadata
index b9b85f5..7b3be29 100644
--- a/.geoclue2.metadata
+++ b/.geoclue2.metadata
@@ -1 +1 @@
-84cde181d17d58a52f6ac2d218b59c106f675fb0 SOURCES/geoclue-2.1.10.tar.xz
+1b8e93ef7a15c2b730b0f5de4e610746e8138b00 SOURCES/geoclue-2.4.5.tar.xz
diff --git a/.gitignore b/.gitignore
index 6a6897c..8e5f3a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/geoclue-2.1.10.tar.xz
+SOURCES/geoclue-2.4.5.tar.xz
diff --git a/SOURCES/locator-Correct-source-accuracy-comparison.patch b/SOURCES/locator-Correct-source-accuracy-comparison.patch
deleted file mode 100644
index b8d752b..0000000
--- a/SOURCES/locator-Correct-source-accuracy-comparison.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 76ba63f3cc55912e7d7886c0806640c5c6b726db Mon Sep 17 00:00:00 2001
-From: Fabrice Bellet <fabrice@bellet.info>
-Date: Wed, 25 Mar 2015 16:08:34 +0100
-Subject: [PATCH 4/7] locator: Correct source accuracy comparison
-
-We now stop sources whose accuracy level becomes higher, rather than
-lower, than the requested level.
-
-https://bugs.freedesktop.org/show_bug.cgi?id=89716
----
- src/gclue-locator.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gclue-locator.c b/src/gclue-locator.c
-index 42ce395..91df67e 100644
---- a/src/gclue-locator.c
-+++ b/src/gclue-locator.c
-@@ -184,7 +184,7 @@ on_avail_accuracy_level_changed (GObject    *gobject,
-             !is_source_active (locator, src)) {
-                 start_source (locator, src);
-         } else if ((level == GCLUE_ACCURACY_LEVEL_NONE ||
--                    priv->accuracy_level > level) &&
-+                    priv->accuracy_level < level) &&
-                    is_source_active (locator, src)) {
-                 g_signal_handlers_disconnect_by_func (G_OBJECT (src),
-                                                       G_CALLBACK (on_location_changed),
--- 
-2.1.0
-
diff --git a/SOURCES/modem-gps-Fix-GPS-coordinates-parsing.patch b/SOURCES/modem-gps-Fix-GPS-coordinates-parsing.patch
deleted file mode 100644
index be007ef..0000000
--- a/SOURCES/modem-gps-Fix-GPS-coordinates-parsing.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From fea6f1844d2c8dc13f94da5af1aea10430ad8ede Mon Sep 17 00:00:00 2001
-From: Fabrice Bellet <fabrice@bellet.info>
-Date: Wed, 25 Mar 2015 14:52:30 +0100
-Subject: [PATCH 3/7] modem-gps: Fix GPS coordinates parsing
-
-Latitude and longitude don't have the same number of digits
-on the left side of the decimal point in the GGA NMEA sentence.
-
-https://bugs.freedesktop.org/show_bug.cgi?id=89715
----
- src/gclue-modem-gps.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/src/gclue-modem-gps.c b/src/gclue-modem-gps.c
-index 7f1338f..5295fe3 100644
---- a/src/gclue-modem-gps.c
-+++ b/src/gclue-modem-gps.c
-@@ -215,6 +215,8 @@ parse_coordinate_string (const char *coordinate,
- {
-         gdouble minutes, degrees, out;
-         gchar *degrees_str;
-+        gchar *dot_str;
-+        gint dot_offset;
- 
-         if (coordinate[0] == '\0' ||
-             direction[0] == '\0' ||
-@@ -230,11 +232,16 @@ parse_coordinate_string (const char *coordinate,
-                 return INVALID_COORDINATE;
-         }
- 
--        degrees_str = g_strndup (coordinate, 2);
-+        dot_str = g_strstr_len (coordinate, 6, ".");
-+        if (dot_str == NULL)
-+                return INVALID_COORDINATE;
-+        dot_offset = dot_str - coordinate;
-+
-+        degrees_str = g_strndup (coordinate, dot_offset - 2);
-         degrees = g_ascii_strtod (degrees_str, NULL);
-         g_free (degrees_str);
- 
--        minutes = g_ascii_strtod (coordinate + 2, NULL);
-+        minutes = g_ascii_strtod (coordinate + dot_offset - 2, NULL);
- 
-         /* Include the minutes as part of the degrees */
-         out = degrees + (minutes / 60.0);
--- 
-2.1.0
-
diff --git a/SOURCES/modem-manager-Don-t-enable-the-modem.patch b/SOURCES/modem-manager-Don-t-enable-the-modem.patch
deleted file mode 100644
index 642772e..0000000
--- a/SOURCES/modem-manager-Don-t-enable-the-modem.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 4492e5066e786acc9e9ba86079ccce352a27df81 Mon Sep 17 00:00:00 2001
-From: "Zeeshan Ali (Khattak)" <zeeshanak@gnome.org>
-Date: Thu, 2 Apr 2015 18:40:29 +0100
-Subject: [PATCH 6/7] modem-manager: Don't enable the modem
-
-Seems at least GNOME takes care of modem enabling for us and besides
-this shouldn't be done by geoclue anyway (see bug#85040).
-
-https://bugs.freedesktop.org/show_bug.cgi?id=85305
----
- src/gclue-modem-manager.c | 45 +++++++++------------------------------------
- 1 file changed, 9 insertions(+), 36 deletions(-)
-
-diff --git a/src/gclue-modem-manager.c b/src/gclue-modem-manager.c
-index cce3065..71ab96d 100644
---- a/src/gclue-modem-manager.c
-+++ b/src/gclue-modem-manager.c
-@@ -410,38 +410,6 @@ out:
- }
- 
- static void
--on_modem_enabled (GObject      *modem_object,
--                  GAsyncResult *res,
--                  gpointer      user_data)
--{
--        GTask *task = G_TASK (user_data);
--        GClueModemManagerPrivate *priv;
--        MMModemLocationSource caps;
--        GError *error = NULL;
--
--        if (!mm_modem_enable_finish (MM_MODEM (modem_object), res, &error)) {
--                if (error->code == MM_CORE_ERROR_IN_PROGRESS)
--                        /* Seems a previous async call hasn't returned yet. */
--                        g_task_return_boolean (task, TRUE);
--                else
--                        g_task_return_error (task, error);
--                g_object_unref (task);
--
--                return;
--        }
--        priv = GCLUE_MODEM_MANAGER (g_task_get_source_object (task))->priv;
--        g_debug ("manager '%s' enabled.", mm_object_get_path (priv->mm_object));
--
--        caps = mm_modem_location_get_enabled (priv->modem_location) | priv->caps;
--        mm_modem_location_setup (priv->modem_location,
--                                 caps,
--                                 TRUE,
--                                 g_task_get_cancellable (task),
--                                 on_modem_location_setup,
--                                 task);
--}
--
--static void
- enable_caps (GClueModemManager    *manager,
-              MMModemLocationSource caps,
-              GCancellable         *cancellable,
-@@ -454,10 +422,15 @@ enable_caps (GClueModemManager    *manager,
-         priv->caps |= caps;
-         task = g_task_new (manager, cancellable, callback, user_data);
- 
--        mm_modem_enable (priv->modem,
--                         cancellable,
--                         on_modem_enabled,
--                         task);
-+        priv = GCLUE_MODEM_MANAGER (g_task_get_source_object (task))->priv;
-+
-+        caps = mm_modem_location_get_enabled (priv->modem_location) | priv->caps;
-+        mm_modem_location_setup (priv->modem_location,
-+                                 caps,
-+                                 TRUE,
-+                                 g_task_get_cancellable (task),
-+                                 on_modem_location_setup,
-+                                 task);
- }
- 
- static gboolean
--- 
-2.1.0
-
diff --git a/SOURCES/modem-manager-Wait-for-modem-to-be-enabled.patch b/SOURCES/modem-manager-Wait-for-modem-to-be-enabled.patch
deleted file mode 100644
index a0149c8..0000000
--- a/SOURCES/modem-manager-Wait-for-modem-to-be-enabled.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 428063526f6bf032c2ecba28cd41865d9a5661fa Mon Sep 17 00:00:00 2001
-From: "Zeeshan Ali (Khattak)" <zeeshanak@gnome.org>
-Date: Wed, 1 Apr 2015 20:22:20 +0100
-Subject: [PATCH 7/7] modem-manager: Wait for modem to be enabled
-
-Modem's location capabilities won't be known until its enabled.
-
-https://bugs.freedesktop.org/show_bug.cgi?id=85305
----
- src/gclue-modem-manager.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 57 insertions(+), 1 deletion(-)
-
-diff --git a/src/gclue-modem-manager.c b/src/gclue-modem-manager.c
-index 71ab96d..d48c0cb 100644
---- a/src/gclue-modem-manager.c
-+++ b/src/gclue-modem-manager.c
-@@ -484,16 +484,72 @@ modem_has_caps (GClueModemManager    *manager,
- static void
- on_mm_object_added (GDBusObjectManager *object_manager,
-                     GDBusObject        *object,
-+                    gpointer            user_data);
-+
-+static void
-+on_mm_modem_state_notify (GObject    *gobject,
-+                          GParamSpec *pspec,
-+                          gpointer    user_data)
-+{
-+        MMModem *mm_modem = MM_MODEM (gobject);
-+        GClueModemManager *manager = GCLUE_MODEM_MANAGER (user_data);
-+        GClueModemManagerPrivate *priv = manager->priv;
-+        GDBusObjectManager *obj_manager = G_DBUS_OBJECT_MANAGER (priv->manager);
-+        const char *path = mm_modem_get_path (mm_modem);
-+        GDBusObject *object;
-+
-+        if (priv->mm_object != NULL) {
-+                // In the meantime another modem with location caps was found.
-+                g_signal_handlers_disconnect_by_func (mm_modem,
-+                                                      on_mm_modem_state_notify,
-+                                                      user_data);
-+                g_object_unref (gobject);
-+
-+                return;
-+        }
-+
-+        if (mm_modem_get_state (mm_modem) < MM_MODEM_STATE_ENABLED)
-+                return;
-+
-+        g_debug ("Modem '%s' now enabled", path);
-+
-+        g_signal_handlers_disconnect_by_func (mm_modem,
-+                                              on_mm_modem_state_notify,
-+                                              user_data);
-+
-+        object = g_dbus_object_manager_get_object (obj_manager, path);
-+        on_mm_object_added (obj_manager, object, user_data);
-+        g_object_unref (mm_modem);
-+}
-+
-+static void
-+on_mm_object_added (GDBusObjectManager *object_manager,
-+                    GDBusObject        *object,
-                     gpointer            user_data)
- {
-         MMObject *mm_object = MM_OBJECT (object);
-         GClueModemManager *manager = GCLUE_MODEM_MANAGER (user_data);
-+        MMModem *mm_modem;
-         MMModemLocation *modem_location;
- 
-         if (manager->priv->mm_object != NULL)
-                 return;
- 
-         g_debug ("New modem '%s'", mm_object_get_path (mm_object));
-+        mm_modem = mm_object_get_modem (mm_object);
-+        if (mm_modem_get_state (mm_modem) < MM_MODEM_STATE_ENABLED) {
-+                g_debug ("Modem '%s' not enabled",
-+                         mm_object_get_path (mm_object));
-+
-+                g_signal_connect_object (mm_modem,
-+                                         "notify::state",
-+                                         G_CALLBACK (on_mm_modem_state_notify),
-+                                         manager,
-+                                         0);
-+
-+                return;
-+        }
-+
-         modem_location = mm_object_peek_modem_location (mm_object);
-         if (modem_location == NULL)
-                 return;
-@@ -502,7 +558,7 @@ on_mm_object_added (GDBusObjectManager *object_manager,
-                  mm_object_get_path (mm_object));
- 
-         manager->priv->mm_object = g_object_ref (mm_object);
--        manager->priv->modem = mm_object_get_modem (mm_object);
-+        manager->priv->modem = mm_modem;
-         manager->priv->modem_location = mm_object_get_modem_location (mm_object);
- 
-         g_signal_connect (G_OBJECT (manager->priv->modem_location),
--- 
-2.1.0
-
diff --git a/SOURCES/service-client-Delay-unrefing-ServiceLocation.patch b/SOURCES/service-client-Delay-unrefing-ServiceLocation.patch
deleted file mode 100644
index e494ca8..0000000
--- a/SOURCES/service-client-Delay-unrefing-ServiceLocation.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 775211c190a01269aa731922f31b54b0451c7ce1 Mon Sep 17 00:00:00 2001
-From: "Zeeshan Ali (Khattak)" <zeeshanak@gnome.org>
-Date: Wed, 1 Apr 2015 18:24:32 +0100
-Subject: [PATCH 5/7] service-client: Delay unrefing ServiceLocation
-
-Lets try to ensure that apps are not still accessing the last location
-before unrefing (and therefore destroying) it by delaying the unref
-operation by 5 seconds after a ServiceLocation object becomes obsolete.
-
-https://bugs.freedesktop.org/show_bug.cgi?id=89782
----
- src/gclue-service-client.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/src/gclue-service-client.c b/src/gclue-service-client.c
-index 0ff3e85..ae22601 100644
---- a/src/gclue-service-client.c
-+++ b/src/gclue-service-client.c
-@@ -138,6 +138,14 @@ below_threshold (GClueServiceClient *client,
-         return FALSE;
- }
- 
-+static gboolean
-+on_prev_location_timeout (gpointer user_data)
-+{
-+        g_object_unref (user_data);
-+
-+        return FALSE;
-+}
-+
- static void
- on_locator_location_changed (GObject    *gobject,
-                              GParamSpec *pspec,
-@@ -163,7 +171,10 @@ on_locator_location_changed (GObject    *gobject,
-                 return;
-         }
- 
--        g_clear_object (&priv->prev_location);
-+        if (priv->prev_location != NULL)
-+                // Lets try to ensure that apps are not still accessing the
-+                // last location before unrefing (and therefore destroying) it.
-+                g_timeout_add_seconds (5, on_prev_location_timeout, priv->prev_location);
-         priv->prev_location = priv->location;
- 
-         path = next_location_path (client);
--- 
-2.1.0
-
diff --git a/SOURCES/service-client-Gracefully-handle-NULL-agent.patch b/SOURCES/service-client-Gracefully-handle-NULL-agent.patch
deleted file mode 100644
index c090af3..0000000
--- a/SOURCES/service-client-Gracefully-handle-NULL-agent.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 07a4f0c0c2e252f8975039a4320d69d04200ac31 Mon Sep 17 00:00:00 2001
-From: "Zeeshan Ali (Khattak)" <zeeshanak@gnome.org>
-Date: Thu, 6 Nov 2014 18:32:28 +0000
-Subject: [PATCH 1/7] service-client: Gracefully handle NULL agent
-
-Don't connect to signals on agent if its NULL. Agent is currently
-entirely optional.
----
- src/gclue-service-client.c | 23 +++++++++++++++--------
- 1 file changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/src/gclue-service-client.c b/src/gclue-service-client.c
-index c27faac..0ff3e85 100644
---- a/src/gclue-service-client.c
-+++ b/src/gclue-service-client.c
-@@ -385,7 +385,11 @@ gclue_service_client_handle_start (GClueClient           *client,
-                 return TRUE;
-         }
- 
--        max_accuracy = gclue_agent_get_max_accuracy_level (priv->agent_proxy);
-+        if (priv->agent_proxy != NULL)
-+                max_accuracy = gclue_agent_get_max_accuracy_level (priv->agent_proxy);
-+        else
-+                max_accuracy = GCLUE_ACCURACY_LEVEL_EXACT;
-+
-         if (max_accuracy == 0) {
-                 g_dbus_method_invocation_return_error (invocation,
-                                                        G_DBUS_ERROR,
-@@ -429,9 +433,11 @@ gclue_service_client_finalize (GObject *object)
- 
-         g_clear_pointer (&priv->path, g_free);
-         g_clear_object (&priv->connection);
--        g_signal_handlers_disconnect_by_func (priv->agent_proxy,
--                                              G_CALLBACK (on_agent_props_changed),
--                                              object);
-+        if (priv->agent_proxy != NULL)
-+                g_signal_handlers_disconnect_by_func
-+                                (priv->agent_proxy,
-+                                 G_CALLBACK (on_agent_props_changed),
-+                                 object);
-         g_clear_object (&priv->agent_proxy);
-         g_clear_object (&priv->locator);
-         g_clear_object (&priv->location);
-@@ -495,10 +501,11 @@ gclue_service_client_set_property (GObject      *object,
- 
-         case PROP_AGENT_PROXY:
-                 client->priv->agent_proxy = g_value_dup_object (value);
--                g_signal_connect (client->priv->agent_proxy,
--                                  "g-properties-changed",
--                                  G_CALLBACK (on_agent_props_changed),
--                                  object);
-+                if (client->priv->agent_proxy != NULL)
-+                        g_signal_connect (client->priv->agent_proxy,
-+                                          "g-properties-changed",
-+                                          G_CALLBACK (on_agent_props_changed),
-+                                          object);
-                 break;
- 
-         default:
--- 
-2.1.0
-
diff --git a/SOURCES/wifi-Remove-a-redundant-condition.patch b/SOURCES/wifi-Remove-a-redundant-condition.patch
deleted file mode 100644
index f33b33f..0000000
--- a/SOURCES/wifi-Remove-a-redundant-condition.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b5f71cefda98277272d483dd4a31c71208dafd5f Mon Sep 17 00:00:00 2001
-From: "Zeeshan Ali (Khattak)" <zeeshanak@gnome.org>
-Date: Thu, 6 Nov 2014 20:21:50 +0000
-Subject: [PATCH 2/7] wifi: Remove a redundant condition
-
-We were only refreshing the location on starting of wifi source if
-requested accuracy level was 'city'. This resulted in clients requesting
-accuracy level other than 'city' to not get any location on machines
-without a wifi card (e.g VMs).
-
-This patches fixes the issue by removing the redundant condition.
----
- src/gclue-wifi.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/gclue-wifi.c b/src/gclue-wifi.c
-index cf2c455..e94ef04 100644
---- a/src/gclue-wifi.c
-+++ b/src/gclue-wifi.c
-@@ -377,8 +377,7 @@ connect_bss_signals (GClueWifi *wifi)
-         if (priv->bss_added_id != 0)
-                 return;
-         if (priv->interface == NULL) {
--                if (wifi->priv->accuracy_level == GCLUE_ACCURACY_LEVEL_CITY)
--                        gclue_web_source_refresh (GCLUE_WEB_SOURCE (wifi));
-+                gclue_web_source_refresh (GCLUE_WEB_SOURCE (wifi));
- 
-                 return;
-         }
--- 
-2.1.0
-
diff --git a/SPECS/geoclue2.spec b/SPECS/geoclue2.spec
index c234e2f..775c5d4 100644
--- a/SPECS/geoclue2.spec
+++ b/SPECS/geoclue2.spec
@@ -1,22 +1,15 @@
 Name:           geoclue2
-Version:        2.1.10
-Release:        5%{?dist}
+Version:        2.4.5
+Release:        1%{?dist}
 Summary:        Geolocation service
 
 License:        GPLv2+
 URL:            http://www.freedesktop.org/wiki/Software/GeoClue/
-Source0:        http://www.freedesktop.org/software/geoclue/releases/2.1/geoclue-%{version}.tar.xz
-
-# Fixes from 2.2.0
-Patch01: locator-Correct-source-accuracy-comparison.patch
-Patch02: service-client-Delay-unrefing-ServiceLocation.patch
-Patch03: modem-gps-Fix-GPS-coordinates-parsing.patch
-Patch04: service-client-Gracefully-handle-NULL-agent.patch
-Patch05: modem-manager-Don-t-enable-the-modem.patch
-Patch06: wifi-Remove-a-redundant-condition.patch
-Patch07: modem-manager-Wait-for-modem-to-be-enabled.patch
+Source0:        http://www.freedesktop.org/software/geoclue/releases/2.4/geoclue-%{version}.tar.xz
 
+BuildRequires:  avahi-glib-devel
 BuildRequires:  glib2-devel
+BuildRequires:  gobject-introspection-devel
 BuildRequires:  intltool
 BuildRequires:  itstool
 BuildRequires:  json-glib-devel
@@ -38,42 +31,52 @@ simple as possible, while the secondary goal is to ensure that no application
 can access location information without explicit permission from user.
 
 
+%package        libs
+Summary:        Geoclue client library
+License:        LGPLv2+
+Requires:       %{name}%{?_isa} = %{version}-%{release}
+
+%description    libs
+The %{name}-libs package contains a convenience library to interact with
+Geoclue service.
+
+
 %package        devel
 Summary:        Development files for %{name}
 Requires:       %{name}%{?_isa} = %{version}-%{release}
+Requires:       %{name}-libs%{?_isa} = %{version}-%{release}
 
 %description    devel
 The %{name}-devel package contains files for developing applications that
 use %{name}.
 
 
+%package        demos
+Summary:        Demo applications for %{name}
+Requires:       %{name}%{?_isa} = %{version}-%{release}
+BuildRequires:  libnotify-devel
+
+%description    demos
+The %{name}-demos package contains demo applications that use %{name}.
+
+
 %prep
 %setup -q -n geoclue-%{version}
 
-%patch01 -p1 -b .locator-Correct-source-accuracy-comparison
-%patch02 -p1 -b .service-client-Delay-unrefing-ServiceLocation
-%patch03 -p1 -b .modem-gps-Fix-GPS-coordinates-parsing
-%patch04 -p1 -b .service-client-Gracefully-handle-NULL-agent
-%patch05 -p1 -b .modem-manager-Don-t-enable-the-modem
-%patch06 -p1 -b .wifi-Remove-a-redundant-condition
-%patch07 -p1 -b .modem-manager-Wait-for-modem-to-be-enabled
 
 %build
-%configure --with-dbus-service-user=geoclue
+%configure --with-dbus-service-user=geoclue --enable-demo-agent
 make %{?_smp_mflags} V=1
 
 
 %install
 %make_install
 
+find $RPM_BUILD_ROOT -name '*.la' -delete
+
 # Home directory for the 'geoclue' user
 mkdir -p $RPM_BUILD_ROOT/var/lib/geoclue
 
-# Remove demo files
-rm $RPM_BUILD_ROOT%{_datadir}/applications/geoclue-demo-agent.desktop
-rm $RPM_BUILD_ROOT%{_datadir}/applications/geoclue-where-am-i.desktop
-rm $RPM_BUILD_ROOT%{_libexecdir}/geoclue-2.0/demos/where-am-i
-
 
 %pre
 # Update the home directory for existing users
@@ -95,9 +98,14 @@ exit 0
 %postun
 %systemd_postun_with_restart geoclue.service
 
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
 
 %files
-%doc COPYING NEWS
+%license COPYING
+%doc NEWS
 %config %{_sysconfdir}/geoclue/
 %{_sysconfdir}/dbus-1/system.d/org.freedesktop.GeoClue2.conf
 %{_sysconfdir}/dbus-1/system.d/org.freedesktop.GeoClue2.Agent.conf
@@ -106,12 +114,32 @@ exit 0
 %{_unitdir}/geoclue.service
 %attr(755,geoclue,geoclue) %dir /var/lib/geoclue
 
+%files libs
+%license COPYING.LIB
+%{_libdir}/girepository-1.0/Geoclue-2.0.typelib
+%{_libdir}/libgeoclue-2.so.0*
+
 %files devel
 %{_datadir}/dbus-1/interfaces/org.freedesktop.GeoClue2*.xml
+%{_datadir}/gir-1.0/Geoclue-2.0.gir
+%{_includedir}/libgeoclue-2.0/
 %{_libdir}/pkgconfig/geoclue-2.0.pc
+%{_libdir}/pkgconfig/libgeoclue-2.0.pc
+%{_libdir}/libgeoclue-2.so
 
+%files demos
+%dir %{_libexecdir}/geoclue-2.0
+%dir %{_libexecdir}/geoclue-2.0/demos
+%{_libexecdir}/geoclue-2.0/demos/where-am-i
+%{_libexecdir}/geoclue-2.0/demos/agent
+%{_datadir}/applications/geoclue-demo-agent.desktop
+%{_datadir}/applications/geoclue-where-am-i.desktop
 
 %changelog
+* Fri Jan 27 2017 Kalev Lember <klember@redhat.com> - 2.4.5-1
+- Update to 2.4.5
+- Resolves: #1386867
+
 * Wed Apr 27 2016 Zeeshan Ali <zeenix@redhat.com> 2.1.10-5
 - Don't obsolete geoclue1 (rhbz#1285479).