Subject: bug#75390: least-authority-wrapper for bitlbee-service-type breaks Bonjour support

From: Ludovic Courtès <[email-masked]>
Date: Wed, 08 Jan 2025 10:07:18 +0100

Hello!

Ricardo Wurmus <[email-masked]> skribis:

> The bitlbee-service-type uses the least-authority-wrapper to run bitlbee
> in a container.  A side effect when using bitlbee-purple is that the
> Bonjour protocol no longer works as bitlbee cannot connect to the local
> mDNS server:
>
> <@rekado> account add bonjour rekado
> <root> Account successfully added with tag bonjour
> <@rekado> account on
> <root> Trying to get all accounts connected...
> <root> bonjour - Login error: Unable to establish connection with the local
>        mDNS server.  Is it running?
> <root> bonjour - Logging in: Signing off..
> <root> bonjour - Logging in: Reconnecting in 5 seconds..

I never used this feature, but I suspect the patch below should fix it:

diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index a914d0f89e..f796afbc82 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -850,6 +850,12 @@ (define bitlbee-shepherd-service
                                         (file-system-mapping
                                          (source "/run/current-system/locale")
                                          (target source))
+                                        (file-system-mapping ;for Avahi
+                                         (source "/var/run/dbus")
+                                         (target source))
+                                        (file-system-mapping
+                                         (source "/run/avahi-daemon")
+                                         (target source))
                                         (file-system-mapping
                                          (source conf)
                                          (target conf)))

Only problem is that things may go wrong if these directories don’t
exist.

So I think we should add a ‘bonjour?’ field in the config record, add
these mapping conditionally, and also add a Shepherd requirement on
‘avahi-daemon’.

> The Bonjour protocol allows for serverless messaging, which is also used
> by the Sugar desktop's Chat activity.

Interesting!

Ludo’.