Subject: [bug#61789] [PATCH 27/27] services: dbus: Deprecate 'dbus-service' procedure.

From: Bruno Victal <[email-masked]>
Date: Sat, 25 Feb 2023 18:58:13 +0000

* doc/guix.texi (Desktop Services): Replace with 'dbus-root-service-type'.
Document dbus-configuration.
* gnu/services/dbus.scm (dbus-service): Define with 'define-deprecated'.
* gnu/services/desktop.scm (desktop-services-for-system): Replace with
dbus-root-service-type.
* gnu/system/install.scm (%installation-services): Ditto.
* gnu/tests/base.scm (%avahi-os): Ditto.
* gnu/tests/docker.scm (%docker-os): Ditto.
* gnu/tests/lightdm.scm (minimal-desktop-services): Ditto.
* gnu/tests/virtualization.scm (%libvirt-os): Ditto.
---
 doc/guix.texi                | 49 +++++++++++++++++++++++-------------
 gnu/services/dbus.scm        |  5 ++--
 gnu/services/desktop.scm     |  2 +-
 gnu/system/install.scm       |  2 +-
 gnu/tests/base.scm           |  2 +-
 gnu/tests/docker.scm         |  2 +-
 gnu/tests/lightdm.scm        |  2 +-
 gnu/tests/virtualization.scm |  2 +-
 8 files changed, 40 insertions(+), 26 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a40d88455b..2dc3ca7d1f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -23293,24 +23293,37 @@ Desktop Services
 provided by @code{(gnu services dbus)} and @code{(gnu services desktop)}
 are described below.
 
-@deffn {Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()] @
-                                       [#:verbose?]
-Return a service that runs the ``system bus'', using @var{dbus}, with
-support for @var{services}.  When @var{verbose?} is true, it causes the
-@samp{DBUS_VERBOSE} environment variable to be set to @samp{1}; a
-verbose-enabled D-Bus package such as @code{dbus-verbose} should be
-provided as @var{dbus} in this scenario.  The verbose output is logged
-to @file{/var/log/dbus-daemon.log}.
-
-@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process communication
-facility.  Its system bus is used to allow system services to communicate
-and to be notified of system-wide events.
-
-@var{services} must be a list of packages that provide an
-@file{etc/dbus-1/system.d} directory containing additional D-Bus configuration
-and policy files.  For example, to allow avahi-daemon to use the system bus,
-@var{services} must be equal to @code{(list avahi)}.
-@end deffn
+@defvar dbus-root-service-type
+Type for a service that runs the D-Bus ``system bus''.
+@footnote{@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process
+communication facility.  Its system bus is used to allow system services
+to communicate and to be notified of system-wide events.}
+
+The value for this service type is a @code{<dbus-configuration>} record.
+@end defvar
+
+@deftp {Data Type} dbus-configuration
+Data type representing the configuration for @code{dbus-root-service-type}.
+
+@table @asis
+@item @code{dbus} (default: @code{dbus}) (type: file-like)
+Package object for dbus.
+
+@item @code{services} (default: @code{()}) (type: list)
+List of packages that provide an @file{etc/dbus-1/system.d} directory
+containing additional D-Bus configuration and policy files.
+For example, to allow avahi-daemon to use the system bus, @var{services}
+must be equal to @code{(list avahi)}.
+
+@item @code{verbose?} (default: @code{#f}) (type: boolean)
+When @code{#t}, D-Bus is launched with environment variable
+@samp{DBUS_VERBOSE} set to @samp{1}.  A verbose-enabled D-Bus package
+such as @code{dbus-verbose} should be provided to @var{dbus} in this
+scenario. The verbose output is logged to
+@file{/var/log/dbus-daemon.log}.
+
+@end table
+@end deftp
 
 @subsubheading Elogind
 
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index ea2593501f..e9c9346f56 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -38,7 +38,7 @@ (define-module (gnu services dbus)
   #:export (dbus-configuration
             dbus-configuration?
             dbus-root-service-type
-            dbus-service
+            dbus-service  ; deprecated
             wrapped-dbus-service
 
             polkit-configuration
@@ -245,7 +245,8 @@ (define dbus-root-service-type
 bus.  It allows programs and daemons to communicate and is also responsible
 for spawning (@dfn{activating}) D-Bus services on demand.")))
 
-(define* (dbus-service #:key (dbus dbus) (services '()) verbose?)
+(define-deprecated (dbus-service #:key (dbus dbus) (services '()) verbose?)
+  dbus-root-service-type
   "Return a service that runs the \"system bus\", using @var{dbus}, with
 support for @var{services}.  When @var{verbose?} is true, it causes the
 @samp{DBUS_VERBOSE} environment variable to be set to @samp{1}; a
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 202bf1de80..2d39b4f9d1 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1821,7 +1821,7 @@ (define* (desktop-services-for-system #:optional
          (service geoclue-service-type)
          (service polkit-service-type)
          (service elogind-service-type)
-         (dbus-service)
+         (service dbus-root-service-type)
 
          (service ntp-service-type)
 
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index dd965f312b..7a68c19606 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -442,7 +442,7 @@ (define* (%installation-services #:key (system (or (and=>
                     (list %loopback-static-networking))
 
            (service wpa-supplicant-service-type)
-           (dbus-service)
+           (service dbus-root-service-type)
            (service connman-service-type
                     (connman-configuration
                      (disable-vpn? #t)))
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 3e72e193d7..97edbbc6ad 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -962,7 +962,7 @@ (define %avahi-os
     (name-service-switch %mdns-host-lookup-nss)
     (services (cons* (service avahi-service-type
                               (avahi-configuration (debug? #t)))
-                     (dbus-service)
+                     (service dbus-root-service-type)
                      (service dhcp-client-service-type) ;needed for multicast
 
                      ;; Enable heavyweight debugging output.
diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm
index e464ec587e..0276e398a7 100644
--- a/gnu/tests/docker.scm
+++ b/gnu/tests/docker.scm
@@ -48,7 +48,7 @@ (define-module (gnu tests docker)
 (define %docker-os
   (simple-operating-system
    (service dhcp-client-service-type)
-   (dbus-service)
+   (service dbus-root-service-type)
    (service polkit-service-type)
    (service elogind-service-type)
    (service docker-service-type)))
diff --git a/gnu/tests/lightdm.scm b/gnu/tests/lightdm.scm
index aa97a96939..dda472bd74 100644
--- a/gnu/tests/lightdm.scm
+++ b/gnu/tests/lightdm.scm
@@ -49,7 +49,7 @@ (define minimal-desktop-services
         (service accountsservice-service-type)
         (service polkit-service-type)
         (service elogind-service-type)
-        (dbus-service)
+        (service dbus-root-service-type)
         x11-socket-directory-service))
 
 (define %lightdm-os
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index 6749ade4bd..effdeb4cfa 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -49,7 +49,7 @@ (define-module (gnu tests virtualization)
 (define %libvirt-os
   (simple-operating-system
    (service dhcp-client-service-type)
-   (dbus-service)
+   (service dbus-root-service-type)
    (service polkit-service-type)
    (service libvirt-service-type)))
 
-- 
2.39.1