From be7e2bf7ebc10bb4e5808ddeabc4b914f575865f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 16 Mar 2023 17:09:46 +0100 Subject: [PATCH] home: services: ssh-agent: Remove host-side use of (shepherd support). This is a followup to 2c2f382e757d5eef39e8460a20ac75a1b1f8b22e, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/ssh.scm ()[socket-directory]: Change value to a gexp. (home-ssh-agent-services): Change 'socket-file' and 'command' to a gexp. Add 'modules' field to 'shepherd-service'. * doc/guix.texi (Secure Shell): Adjust accordingly. --- doc/guix.texi | 2 +- gnu/home/services/ssh.scm | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 79f098c114..c73a05a0c4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -42511,7 +42511,7 @@ Available @code{home-ssh-agent-configuration} fields are: @item @code{git} (default: @code{git}) (type: file-like) The git package to use. -@item @code{socket-directory} (default: @code{@env{XDG_RUNTIME_DIR}/ssh-agent"}) (type: string) +@item @code{socket-directory} (default: @code{@env{XDG_RUNTIME_DIR}/ssh-agent"}) (type: gexp) The directory to write the ssh-agent's @file{socket} file. @item @code{extra-options} (default: @code{'()}) diff --git a/gnu/home/services/ssh.scm b/gnu/home/services/ssh.scm index 205650d489..2eae08bd86 100644 --- a/gnu/home/services/ssh.scm +++ b/gnu/home/services/ssh.scm @@ -31,7 +31,6 @@ (define-module (gnu home services ssh) #:select (object->camel-case-string)) #:autoload (gnu packages base) (glibc-utf8-locales) #:use-module (gnu packages ssh) - #:use-module (shepherd support) #:use-module (srfi srfi-1) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -271,7 +270,7 @@ (define-record-type* (openssh home-ssh-agent-openssh ;file-like (default openssh)) (socket-directory home-ssh-agent-socket-directory ;string - (default (string-append %user-runtime-dir "/ssh-agent"))) + (default #~(string-append %user-runtime-dir "/ssh-agent"))) (extra-options home-ssh-agent-extra-options ;list of string (default '()))) @@ -281,20 +280,20 @@ (define (home-ssh-agent-services config) (($ openssh socket-directory extra-options) (let* ((ssh-agent (file-append openssh "/bin/ssh-agent")) - (socket-file (string-append socket-directory "/socket")) - (command `(,ssh-agent - "-D" - "-a" ,socket-file - ,@extra-options)) - (log-file (string-append %user-log-dir "/ssh-agent.log"))) + (socket-file #~(string-append #$socket-directory "/socket")) + (command #~`(#$ssh-agent + "-D" "-a" ,#$socket-file + #$@extra-options)) + (log-file #~(string-append %user-log-dir "/ssh-agent.log"))) (list (shepherd-service (documentation "Run the ssh-agent.") (provision '(ssh-agent)) + (modules '((shepherd support))) ;for '%user-runtime-dir', etc. (start #~(lambda _ (unless (file-exists? #$socket-directory) (mkdir-p #$socket-directory) (chmod #$socket-directory #o700)) - (fork+exec-command '#$command #:log-file #$log-file))) + (fork+exec-command #$command #:log-file #$log-file))) (stop #~(make-kill-destructor)))))))) (define home-ssh-agent-service-type