summary refs log tree commit diff
diff options
context:
space:
mode:
authorBruno Victal <mirai@makinata.eu>2023-02-25 18:58:06 +0000
committerLudovic Courtès <ludo@gnu.org>2023-03-03 17:55:34 +0100
commitae0975332c60818793c6c63a3646c982d686bf49 (patch)
treeb6b23643b2f6a1bbdd5da79dd4202c1f66a728c3
parente8f161ea11c24b9812d74e6793f5d7f8e789e170 (diff)
downloadguix-ae0975332c60818793c6c63a3646c982d686bf49.tar.gz
services: desktop: Deprecate 'geoclue-service' procedure.
* doc/guix.texi (Desktop Services): Replace 'geoclue-service' with 'geoclue-service-type'.
* gnu/services/desktop.scm (<geoclue-configuration>): Set default values
based on the values from the now deprecated geoclue-service procedure.
(geoclue-service): Deprecate procedure.
(desktop-services-for-system): Use geoclue-service-type.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--doc/guix.texi26
-rw-r--r--gnu/services/desktop.scm61
2 files changed, 48 insertions, 39 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 659f451933..74238cc150 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -23633,20 +23633,18 @@ IceCat and Epiphany both query the user before allowing a web page to
 know the user's location.
 @end defvar
 
-@deffn {Scheme Procedure} geoclue-service [#:colord @var{colord}] @
-                         [#:whitelist '()] @
-                         [#:wifi-geolocation-url "https://location.services.mozilla.com/v1/geolocate?key=geoclue"] @
-                         [#:submit-data? #f]
-                         [#:wifi-submission-url "https://location.services.mozilla.com/v1/submit?key=geoclue"] @
-                         [#:submission-nick "geoclue"] @
-                         [#:applications %standard-geoclue-applications]
-Return a service that runs the GeoClue location service.  This service
-provides a D-Bus interface to allow applications to request access to a
-user's physical location, and optionally to add information to online
-location databases.  See
-@uref{https://wiki.freedesktop.org/www/Software/GeoClue/, the GeoClue
-web site} for more information.
-@end deffn
+@defvar geoclue-service-type
+Type for the service that runs the
+@url{https://wiki.freedesktop.org/www/Software/GeoClue/, GeoClue}
+location service.  This service provides a D-Bus interface to allow
+applications to request access to a user's physical location, and
+optionally to add information to online location databases.
+
+The value for this service is a @code{<geoclue-configuration>} object.
+@end defvar
+
+@c TODO: Document <geoclue-configuration>, preferably by refactoring this to use
+@c       define-configuration and generating documentation from it.
 
 @deffn {Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @
        [@w{#:auto-enable? #f}]
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 99a3628606..073e0132e1 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -106,7 +106,7 @@
             geoclue-configuration
             geoclue-configuration?
             %standard-geoclue-applications
-            geoclue-service
+            geoclue-service  ; deprecated
             geoclue-service-type
 
             bluetooth-service-type
@@ -318,19 +318,6 @@ used by GNOME.")
 ;;; GeoClue D-Bus service.
 ;;;
 
-;; TODO: Export.
-(define-record-type* <geoclue-configuration>
-  geoclue-configuration make-geoclue-configuration
-  geoclue-configuration?
-  (geoclue geoclue-configuration-geoclue
-           (default geoclue))
-  (whitelist geoclue-configuration-whitelist)
-  (wifi-geolocation-url geoclue-configuration-wifi-geolocation-url)
-  (submit-data? geoclue-configuration-submit-data?)
-  (wifi-submission-url geoclue-configuration-wifi-submission-url)
-  (submission-nick geoclue-configuration-submission-nick)
-  (applications geoclue-configuration-applications))
-
 (define* (geoclue-application name #:key (allowed? #t) system? (users '()))
   "Configure default GeoClue access permissions for an application.  NAME is
 the Desktop ID of the application, without the .desktop part.  If ALLOWED? is
@@ -350,6 +337,28 @@ users are allowed."
         (geoclue-application "epiphany" #:system? #f)
         (geoclue-application "firefox" #:system? #f)))
 
+;; TODO: Use define-configuration and export accessors.
+(define-record-type* <geoclue-configuration>
+  geoclue-configuration make-geoclue-configuration
+  geoclue-configuration?
+  (geoclue geoclue-configuration-geoclue
+           (default geoclue))
+  (whitelist geoclue-configuration-whitelist
+             (default '()))
+  (wifi-geolocation-url
+   geoclue-configuration-wifi-geolocation-url
+   ;; Mozilla geolocation service:
+   (default "https://location.services.mozilla.com/v1/geolocate?key=geoclue"))
+  (submit-data? geoclue-configuration-submit-data?
+                (default #f))
+  (wifi-submission-url
+   geoclue-configuration-wifi-submission-url
+   (default "https://location.services.mozilla.com/v1/submit?key=geoclue"))
+  (submission-nick geoclue-configuration-submission-nick
+                   (default "geoclue"))
+  (applications geoclue-configuration-applications
+                (default %standard-geoclue-applications)))
+
 (define* (geoclue-configuration-file config)
   "Return a geoclue configuration file."
   (plain-file "geoclue.conf"
@@ -397,16 +406,18 @@ This service provides a D-Bus interface to allow applications to request
 access to a user's physical location, and optionally to add information to
 online location databases.")))
 
-(define* (geoclue-service #:key (geoclue geoclue)
-                          (whitelist '())
-                          (wifi-geolocation-url
-                           ;; Mozilla geolocation service:
-                           "https://location.services.mozilla.com/v1/geolocate?key=geoclue")
-                          (submit-data? #f)
-                          (wifi-submission-url
-                           "https://location.services.mozilla.com/v1/submit?key=geoclue")
-                          (submission-nick "geoclue")
-                          (applications %standard-geoclue-applications))
+(define-deprecated
+  (geoclue-service #:key (geoclue geoclue)
+                   (whitelist '())
+                   (wifi-geolocation-url
+                    ;; Mozilla geolocation service:
+                    "https://location.services.mozilla.com/v1/geolocate?key=geoclue")
+                   (submit-data? #f)
+                   (wifi-submission-url
+                    "https://location.services.mozilla.com/v1/submit?key=geoclue")
+                   (submission-nick "geoclue")
+                   (applications %standard-geoclue-applications))
+  geoclue-service-type
   "Return a service that runs the @command{geoclue} location service.  This
 service provides a D-Bus interface to allow applications to request access to
 a user's physical location, and optionally to add information to online
@@ -1865,7 +1876,7 @@ applications needing access to be root.")
          (service accountsservice-service-type)
          (service cups-pk-helper-service-type)
          (service colord-service-type)
-         (geoclue-service)
+         (service geoclue-service-type)
          (service polkit-service-type)
          (service elogind-service-type)
          (dbus-service)