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>
This commit is contained in:
Bruno Victal 2023-02-25 18:58:06 +00:00 committed by Ludovic Courtès
parent e8f161ea11
commit ae0975332c
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 48 additions and 39 deletions

View file

@ -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}]

View file

@ -106,7 +106,7 @@ (define-module (gnu services desktop)
geoclue-configuration
geoclue-configuration?
%standard-geoclue-applications
geoclue-service
geoclue-service ; deprecated
geoclue-service-type
bluetooth-service-type
@ -318,19 +318,6 @@ (define upower-service-type
;;; 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 @@ (define %standard-geoclue-applications
(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 @@ (define geoclue-service-type
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 @@ (define* (desktop-services-for-system #:optional
(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)