diff --git a/fix-location-access-setting.patch b/fix-location-access-setting.patch new file mode 100644 index 0000000..9e71a06 --- /dev/null +++ b/fix-location-access-setting.patch @@ -0,0 +1,96 @@ +From 2815b7f3add1f444b1b12aad66d9f83e8dbdddf7 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Fri, 5 Jun 2020 11:22:50 -0500 +Subject: [PATCH] Revert "service: Drop authorization for system apps" + +This reverts commit 87e60ed97843f1a59db46c320aa048cb064a0f08. + +It broke the location access setting. + +Fixes #111 +--- + src/gclue-service-client.c | 23 ++++++----------------- + 1 file changed, 6 insertions(+), 17 deletions(-) + +diff --git a/src/gclue-service-client.c b/src/gclue-service-client.c +index 247fdb6a..fbb49cc0 100644 +--- a/src/gclue-service-client.c ++++ b/src/gclue-service-client.c +@@ -329,17 +329,16 @@ on_agent_props_changed (GDBusProxy *agent_proxy, + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_loop (iter, "{&sv}", &key, &value)) { + GClueAccuracyLevel max_accuracy; ++ GClueConfig *config; + const char *id; +- gboolean system_app; + + if (strcmp (key, "MaxAccuracyLevel") != 0) + continue; + + gdbus_client = GCLUE_DBUS_CLIENT (client); ++ config = gclue_config_get_singleton (); + id = gclue_dbus_client_get_desktop_id (gdbus_client); + max_accuracy = g_variant_get_uint32 (value); +- system_app = (gclue_client_info_get_xdg_id +- (client->priv->client_info) == NULL); + /* FIXME: We should be handling all values of max accuracy + * level here, not just 0 and non-0. + */ +@@ -355,7 +354,7 @@ on_agent_props_changed (GDBusProxy *agent_proxy, + g_debug ("Re-started '%s'.", id); + } else if (max_accuracy == 0 && + gclue_dbus_client_get_active (gdbus_client) && +- !system_app) { ++ !gclue_config_is_system_component (config, id)) { + stop_client (client); + client->priv->agent_stopped = TRUE; + g_debug ("Stopped '%s'.", id); +@@ -472,7 +471,8 @@ handle_post_agent_check_auth (StartData *data) + data->desktop_id, + priv->client_info); + +- if (app_perm == GCLUE_APP_PERM_ALLOWED) { ++ if (gclue_config_is_system_component (config, data->desktop_id) || ++ app_perm == GCLUE_APP_PERM_ALLOWED) { + complete_start (data); + return; + } +@@ -556,7 +556,6 @@ gclue_service_client_handle_start (GClueDBusClient *client, + const char *desktop_id; + GClueAppPerm app_perm; + guint32 uid; +- gboolean system_app = FALSE; + + if (priv->locator != NULL) { + /* Already started */ +@@ -566,11 +565,9 @@ gclue_service_client_handle_start (GClueDBusClient *client, + } + + desktop_id = gclue_client_info_get_xdg_id (priv->client_info); +- if (desktop_id == NULL) { ++ if (desktop_id == NULL) + /* Non-xdg app */ + desktop_id = gclue_dbus_client_get_desktop_id (client); +- system_app = TRUE; +- } + + if (desktop_id == NULL) { + g_dbus_method_invocation_return_error_literal (invocation, +@@ -605,14 +602,6 @@ gclue_service_client_handle_start (GClueDBusClient *client, + data->accuracy_level = ensure_valid_accuracy_level + (data->accuracy_level, GCLUE_ACCURACY_LEVEL_EXACT); + +- if (system_app) { +- /* Since we have no reliable way to identify system apps, no +- * need for auth for them. */ +- complete_start (data); +- +- return TRUE; +- } +- + /* No agent == No authorization */ + if (priv->agent_proxy == NULL) { + /* Already a pending Start()? Denied! */ +-- +GitLab + diff --git a/geoclue2.spec b/geoclue2.spec index 8b4a445..964306d 100644 --- a/geoclue2.spec +++ b/geoclue2.spec @@ -1,12 +1,15 @@ Name: geoclue2 Version: 2.5.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Geolocation service License: GPLv2+ URL: http://www.freedesktop.org/wiki/Software/GeoClue/ Source0: https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/%{version}/geoclue-%{version}.tar.bz2 +# https://gitlab.freedesktop.org/geoclue/geoclue/-/merge_requests/70 +Patch0: fix-location-access-setting.patch + BuildRequires: avahi-glib-devel BuildRequires: gettext BuildRequires: glib2-devel @@ -150,6 +153,9 @@ exit 0 %changelog +* Fri Jul 24 2020 Michael Catanzaro - 2.5.6-2 +- Add patch to fix location privacy setting + * Wed Feb 26 2020 Kalev Lember - 2.5.6-1 - Update to 2.5.6