services/nfs: Replace nfs-version with nfs-versions.

Instead of accepting a string for just one protocol version accept a list of
supported versions.

* gnu/services/nfs.scm (<nfs-configuration>)[nfs-version]: Remove field and
replace...
[nfs-versions]: ...with this new field.
(nfs-shepherd-services): Pass as many "--nfs-version" options as there are
supported versions.
* doc/guix.texi (Network File System): Document nfs-versions.
This commit is contained in:
Ricardo Wurmus 2020-03-27 15:24:54 +01:00
parent 9483782a61
commit bc3fda5d2b
No known key found for this signature in database
GPG key ID: 197A5888235FACAC
2 changed files with 16 additions and 15 deletions

View file

@ -22233,9 +22233,9 @@ It has the following parameters:
@item @code{nfs-utils} (default: @code{nfs-utils})
The nfs-utils package to use.
@item @code{nfs-version} (default: @code{#f})
If a string value is provided, the @command{rpc.nfsd} daemon will be
limited to supporting the given version of the NFS protocol.
@item @code{nfs-versions} (default: @code{'("4.2" "4.1" "4.0")})
If a list of string values is provided, the @command{rpc.nfsd} daemon
will be limited to supporting the given versions of the NFS protocol.
@item @code{exports} (default: @code{'()})
This is a list of directories the NFS server should export. Each entry

View file

@ -245,8 +245,8 @@ (define-record-type* <nfs-configuration>
nfs-configuration?
(nfs-utils nfs-configuration-nfs-utils
(default nfs-utils))
(nfs-version nfs-configuration-nfs-version
(default #f)) ; string
(nfs-versions nfs-configuration-nfs-versions
(default '("4.2" "4.1" "4.0")))
(exports nfs-configuration-exports
(default '()))
(rpcmountd-port nfs-configuration-rpcmountd-port
@ -270,7 +270,7 @@ (define-record-type* <nfs-configuration>
(define (nfs-shepherd-services config)
"Return a list of <shepherd-service> for the NFS daemons with CONFIG."
(match-record config <nfs-configuration>
(nfs-utils nfs-version exports
(nfs-utils nfs-versions exports
rpcmountd-port rpcstatd-port nfsd-port nfsd-threads
pipefs-directory debug)
(list (shepherd-service
@ -323,15 +323,16 @@ (define (nfs-shepherd-services config)
(requirement '(/proc/fs/nfsd rpc.statd networking))
(start
#~(lambda _
(zero? (system* #$(file-append nfs-utils "/sbin/rpc.nfsd")
#$@(if (member 'nfsd debug)
'("--debug")
'())
"--port" #$(number->string nfsd-port)
#$@(if nfs-version
'("--nfs-version" nfs-version)
'())
#$(number->string nfsd-threads)))))
(zero? (apply system* #$(file-append nfs-utils "/sbin/rpc.nfsd")
(list
#$@(if (member 'nfsd debug)
'("--debug")
'())
"--port" #$(number->string nfsd-port)
#$@(map (lambda (version)
(string-append "--nfs-version=" version))
nfs-versions)
#$(number->string nfsd-threads))))))
(stop
#~(lambda _
(zero?