GNOME Bluetooth integration is broken

  • Done
  • quality assurance status badge
Details
2 participants
  • Liliana Marie Prikler
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Mathieu Othacehe
Severity
normal
Merged with
M
M
Mathieu Othacehe wrote on 27 Dec 2021 19:54
(address . bug-guix@gnu.org)
87mtkl3mkk.fsf@gnu.org
Hello,

Using the bluetooth-service and blueman, I can manage to connect to
bluetooth devices. However, the "Bluetooth" section in the GNOME
settings reports: "No Bluetooth Found", as can be seen in the attached
capture.

Thanks,

Mathieu
L
L
Liliana Marie Prikler wrote on 27 Dec 2021 21:36
(address . control@debbugs.gnu.org)
9694a626e61bf7961b236a50c147f4df6f286a47.camel@gmail.com
merge 32166 52829
thanks
M
M
Mathieu Othacehe wrote on 4 Jan 2022 09:17
Re: bug#32166: GNOME Settings panel for Bluetooth dysfunctional
(address . 52829@debbugs.gnu.org)(address . 32166@debbugs.gnu.org)
875yqz29ug.fsf@gnu.org
Hello,

Toggle quote (5 lines)
> Using the bluetooth-service and blueman, I can manage to connect to
> bluetooth devices. However, the "Bluetooth" section in the GNOME
> settings reports: "No Bluetooth Found", as can be seen in the attached
> capture.

Took me some times to figure it out, but the attached patches do fix the
issue. In short, gnome-settings-daemon needs a RW access to
/dev/rfkill.

It installs an udev rule to add an uaccess tag to the /dev/rfkill
device. Then elogind takes care of modifying the file ACL accordingly.

Two things were broken:

1. The gnome-settings-daemon udev path was wrong.

2. The gnome service didn't registered the udev rules installed by the
gnome-settings-daemon.

I now have, as intended:

Toggle snippet (12 lines)
mathieu@meije ~$ getfacl /dev/rfkill
getfacl: Removing leading '/' from absolute path names
# file: dev/rfkill
# owner: root
# group: root
user::rw-
user:mathieu:rw-
group::rw-
mask::rw-
other::r--

Thanks,

Mathieu
From 8ba28c5b1fe65c469bb0ce041f43159f9f136202 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Mon, 3 Jan 2022 20:21:11 +0100
Subject: [PATCH 1/2] gnu: gnome-settings-daemon: Fix udev directory.

* gnu/packages/gnome.scm (gnome-settings-daemon)[arguments]
{#:configure-flags}: Fix the udev directory.
---
gnu/packages/gnome.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f7f00100b3..a472e66358 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5577,8 +5577,7 @@ (define-public gnome-settings-daemon
#:glib-or-gtk? #t
#:configure-flags
(list (string-append "-Dudev_dir="
- (assoc-ref %outputs "out")
- "/lib/udev/rules.d/")
+ (assoc-ref %outputs "out") "/lib/udev")
"-Dsystemd=false"
;; Otherwise, the RUNPATH will lack the final path component.
(string-append "-Dc_link_args=-Wl,-rpath="
--
2.34.0
From fb60e647dcd92e294c33fdb4293f6c69290d260f Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Mon, 3 Jan 2022 20:22:02 +0100
Subject: [PATCH 2/2] services: gnome: Add udev rules.


* gnu/services/desktop.scm (gnome-packages, gnome-udev-rules): New procedures.
(gnome-polkit-settings): Use the gnome-packages procedure.
(gnome-desktop-service-type): Add an udev service extension.
---
gnu/services/desktop.scm | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)

Toggle diff (49 lines)
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index c6761ca784..c2ee3a3d80 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -868,22 +868,34 @@ (define-record-type* <gnome-desktop-configuration> gnome-desktop-configuration
gnome-desktop-configuration?
(gnome gnome-package (default gnome)))
-(define (gnome-polkit-settings config)
- "Return the list of GNOME dependencies that provide polkit actions and
-rules."
+(define (gnome-packages config packages)
+ "Return the list of GNOME dependencies from CONFIG which names are part of
+the given PACKAGES list."
(let ((gnome (gnome-package config)))
(map (lambda (name)
((package-direct-input-selector name) gnome))
- '("gnome-settings-daemon"
- "gnome-control-center"
- "gnome-system-monitor"
- "gvfs"))))
+ packages)))
+
+(define (gnome-udev-rules config)
+ "Return the list of GNOME dependencies that provide udev rules."
+ (gnome-packages config '("gnome-settings-daemon")))
+
+(define (gnome-polkit-settings config)
+ "Return the list of GNOME dependencies that provide polkit actions and
+rules."
+ (gnome-packages config
+ '("gnome-settings-daemon"
+ "gnome-control-center"
+ "gnome-system-monitor"
+ "gvfs")))
(define gnome-desktop-service-type
(service-type
(name 'gnome-desktop)
(extensions
- (list (service-extension polkit-service-type
+ (list (service-extension udev-service-type
+ gnome-udev-rules)
+ (service-extension polkit-service-type
gnome-polkit-settings)
(service-extension profile-service-type
(compose list
--
2.34.0
M
M
Mathieu Othacehe wrote on 6 Jan 2022 09:29
Re: bug#52829: GNOME Bluetooth integration is broken
(address . 52829-done@debbugs.gnu.org)
87fsq1uv1h.fsf_-_@gnu.org
Toggle quote (3 lines)
> It installs an udev rule to add an uaccess tag to the /dev/rfkill
> device. Then elogind takes care of modifying the file ACL accordingly.

Pushed, thanks!

Mathieu
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 52829@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 52829
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch