Add patch to fix location privacy setting
This commit is contained in:
parent
ed55153b1e
commit
593f978a59
96
fix-location-access-setting.patch
Normal file
96
fix-location-access-setting.patch
Normal file
@ -0,0 +1,96 @@
|
||||
From 2815b7f3add1f444b1b12aad66d9f83e8dbdddf7 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@gnome.org>
|
||||
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
|
||||
|
@ -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 <mcatanzaro@redhat.com> - 2.5.6-2
|
||||
- Add patch to fix location privacy setting
|
||||
|
||||
* Wed Feb 26 2020 Kalev Lember <klember@redhat.com> - 2.5.6-1
|
||||
- Update to 2.5.6
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user