diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-02-04 22:42:38 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-02-04 22:49:35 +0100 |
commit | 4aee6e60033786e1fa09595f116199a17516e64e (patch) | |
tree | a147cf218c461c60e199d582dca02bbe14444f7a | |
parent | 996ed73948e92eb2005a2a282856753d707f452c (diff) | |
download | patches-4aee6e60033786e1fa09595f116199a17516e64e.tar patches-4aee6e60033786e1fa09595f116199a17516e64e.tar.gz |
services: nscd-service: Add #:name-services parameter.
* gnu/services/base.scm (nscd-service): Add #:name-services parameter.
In 'start' field, set LD_LIBRARY_PATH based on #:name-services.
* doc/guix.texi (Base Services): Document it.
(Name Service Switch): Link to 'nscd-service'.
-rw-r--r-- | doc/guix.texi | 14 | ||||
-rw-r--r-- | gnu/services/base.scm | 17 |
2 files changed, 25 insertions, 6 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index e489d414bc..bd985f956c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4319,9 +4319,12 @@ the ``message of the day''. @cindex name service cache daemon @cindex nscd -@deffn {Monadic Procedure} nscd-service [@var{config}] [#:glibc glibc] -Return a service that runs libc's name service cache daemon (nscd) with the -given @var{config}---an @code{<nscd-configuration>} object. +@deffn {Monadic Procedure} nscd-service [@var{config}] [#:glibc glibc] @ + [#:name-services '()] +Return a service that runs libc's name service cache daemon (nscd) with +the given @var{config}---an @code{<nscd-configuration>} object. +Optionally, @code{#:name-services} is a list of packages that provide +name service switch (NSS) modules needed by nscd. @end deffn @defvr {Scheme Variable} %nscd-default-configuration @@ -4753,6 +4756,11 @@ associated lookup action. A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual}). +Note that name services listed here must be visible to nscd. This is +achieved by passing the @code{#:name-services} argument to +@code{nscd-service} the list of packages providing the needed name +services (@pxref{Base Services, @code{nscd-service}}). + @item reaction An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 32eb9035d4..94abef65c8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -492,9 +492,12 @@ the ``message of the day''." (map cache->config caches))))))) (define* (nscd-service #:optional (config %nscd-default-configuration) - #:key (glibc (canonical-package glibc))) + #:key (glibc (canonical-package glibc)) + (name-services '())) "Return a service that runs libc's name service cache daemon (nscd) with the -given @var{config}---an @code{<nscd-configuration>} object." +given @var{config}---an @code{<nscd-configuration>} object. Optionally, +@code{#:name-services} is a list of packages that provide name service switch + (NSS) modules needed by nscd." (mlet %store-monad ((nscd.conf (nscd.conf-file config))) (return (service (documentation "Run libc's name service cache daemon (nscd).") @@ -507,7 +510,15 @@ given @var{config}---an @code{<nscd-configuration>} object." (start #~(make-forkexec-constructor (list (string-append #$glibc "/sbin/nscd") - "-f" #$nscd.conf "--foreground"))) + "-f" #$nscd.conf "--foreground") + + #:environment-variables + (list (string-append "LD_LIBRARY_PATH=" + (string-join + (map (lambda (dir) + (string-append dir "/lib")) + (list #$@name-services)) + ":"))))) (stop #~(make-kill-destructor)) (respawn? #f))))) |