From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:58949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hBcS8-0001lq-7F for guix-patches@gnu.org; Wed, 03 Apr 2019 05:45:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hBcS7-0002bi-4p for guix-patches@gnu.org; Wed, 03 Apr 2019 05:45:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:56790) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hBcS7-0002bN-0X for guix-patches@gnu.org; Wed, 03 Apr 2019 05:45:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hBcS6-00059G-VO for guix-patches@gnu.org; Wed, 03 Apr 2019 05:45:02 -0400 Subject: [bug#35118] [PATCH 3/4] services: dbus: 'wrapped-dbus-service' accepts a list of variables. Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Wed, 3 Apr 2019 11:44:18 +0200 Message-Id: <20190403094419.22802-3-ludo@gnu.org> In-Reply-To: <20190403094419.22802-1-ludo@gnu.org> References: <20190403094419.22802-1-ludo@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 35118@debbugs.gnu.org * gnu/services/dbus.scm (wrapped-dbus-service): Replace 'variable' and 'value' by 'variables', and adjust code accordingly. * gnu/services/desktop.scm (upower-dbus-service): (geoclue-dbus-service, elogind-dbus-service): Adjust accordingly. --- gnu/services/dbus.scm | 14 ++++++++++---- gnu/services/desktop.scm | 12 ++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 3d2dbb903c..35d7ff3c9c 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -231,14 +231,20 @@ and policy files. For example, to allow avahi-daemon to use the system bus, (dbus-configuration (dbus dbus) (services services)))) -(define (wrapped-dbus-service service program variable value) +(define (wrapped-dbus-service service program variables) "Return a wrapper for @var{service}, a package containing a D-Bus service, -where @var{program} is wrapped such that environment variable @var{variable} -is set to @var{value} when the bus daemon launches it." +where @var{program} is wrapped such that @var{variables}, a list of name/value +tuples, are all set as environment variables when the bus daemon launches it." (define wrapper (program-file (string-append (package-name service) "-program-wrapper") #~(begin - (setenv #$variable #$value) + (use-modules (ice-9 match)) + + (for-each (match-lambda + ((variable value) + (setenv variable value))) + '#$variables) + (apply execl (string-append #$service "/" #$program) (string-append #$service "/" #$program) (cdr (command-line)))))) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 230aeb324c..578095b146 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -217,8 +217,8 @@ (define (upower-dbus-service config) (list (wrapped-dbus-service (upower-configuration-upower config) "libexec/upowerd" - "UPOWER_CONF_FILE_NAME" - (upower-configuration-file config)))) + `(("UPOWER_CONF_FILE_NAME" + ,(upower-configuration-file config)))))) (define (upower-shepherd-service config) "Return a shepherd service for UPower with CONFIG." @@ -349,8 +349,8 @@ users are allowed." (define (geoclue-dbus-service config) (list (wrapped-dbus-service (geoclue-configuration-geoclue config) "libexec/geoclue" - "GEOCLUE_CONFIG_FILE" - (geoclue-configuration-file config)))) + `(("GEOCLUE_CONFIG_FILE" + ,(geoclue-configuration-file config)))))) (define %geoclue-accounts (list (user-group (name "geoclue") (system? #t)) @@ -702,8 +702,8 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks." (define (elogind-dbus-service config) (list (wrapped-dbus-service (elogind-package config) "libexec/elogind/elogind" - "ELOGIND_CONF_FILE" - (elogind-configuration-file config)))) + `(("ELOGIND_CONF_FILE" + ,(elogind-configuration-file config)))))) (define (pam-extension-procedure config) "Return an extension for PAM-ROOT-SERVICE-TYPE that ensures that all the PAM -- 2.21.0