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
|
Name: geoclue2
|
||||||
Version: 2.5.6
|
Version: 2.5.6
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Geolocation service
|
Summary: Geolocation service
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.freedesktop.org/wiki/Software/GeoClue/
|
URL: http://www.freedesktop.org/wiki/Software/GeoClue/
|
||||||
Source0: https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/%{version}/geoclue-%{version}.tar.bz2
|
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: avahi-glib-devel
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: glib2-devel
|
BuildRequires: glib2-devel
|
||||||
@ -150,6 +153,9 @@ exit 0
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* Wed Feb 26 2020 Kalev Lember <klember@redhat.com> - 2.5.6-1
|
||||||
- Update to 2.5.6
|
- Update to 2.5.6
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user