;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
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
(default 2049))
(nfsd-threads nfs-configuration-nfsd-threads
(default 8))
+ (nfsd-tcp? nfs-configuration-nfsd-tcp?
+ (default #t))
+ (nfsd-udp? nfs-configuration-nfsd-udp?
+ (default #f))
(pipefs-directory nfs-configuration-pipefs-directory
(default default-pipefs-directory))
;; List of modules to debug; any of nfsd, nfs, rpc, idmap, statd, or mountd.
(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
+ nfsd-tcp? nfsd-udp?
pipefs-directory debug)
(list (shepherd-service
(documentation "Mount the nfsd pseudo file system.")
(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)
+ #$(if nfsd-tcp?
+ "--tcp"
+ "--no-tcp")
+ #$(if nfsd-udp?
+ "--udp"
+ "--no-udp"))))))
(stop
#~(lambda _
(zero?