aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-10-20 15:14:17 +0200
committerLudovic Courtès <ludo@gnu.org>2016-10-20 15:43:59 +0200
commitdc0322b51111d12e1d97e2cc456100c44dd31bb6 (patch)
treee264a710d9e64bc222d701e0bc1417e7c14603c3
parent6d3dda4ff54b3d44c0de560e988d3a44541038b3 (diff)
downloadguix-dc0322b51111d12e1d97e2cc456100c44dd31bb6.tar
guix-dc0322b51111d12e1d97e2cc456100c44dd31bb6.tar.gz
services: ntpd: Add 'allow-large-adjustment?' knob.
Suggested by Leo Famulari. * gnu/services/networking.scm (<ntp-configuration>)[allow-large-adjustment?]: New field. (ntp-shepherd-service): Honor it. (ntp-service): Add #:allow-large-adjustment? and honor it. * doc/guix.texi (Networking Services): Document it.
-rw-r--r--doc/guix.texi5
-rw-r--r--gnu/services/networking.scm23
2 files changed, 21 insertions, 7 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 0c5d641b48..86b82c8c4a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8284,10 +8284,13 @@ configure networking."
@end deffn
@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
- [#:servers @var{%ntp-servers}]
+ [#:servers @var{%ntp-servers}] @
+ [#:allow-large-adjustment? #f]
Return a service that runs the daemon from @var{ntp}, the
@uref{http://www.ntp.org, Network Time Protocol package}. The daemon will
keep the system clock synchronized with that of @var{servers}.
+@var{allow-large-adjustment?} determines whether @command{ntpd} is allowed to
+make an initial adjustment of more than 1,000 seconds.
@end deffn
@defvr {Scheme Variable} %ntp-servers
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 7495179f8e..df609da0de 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -265,11 +265,13 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."
ntp-configuration?
(ntp ntp-configuration-ntp
(default ntp))
- (servers ntp-configuration-servers))
+ (servers ntp-configuration-servers)
+ (allow-large-adjustment? ntp-allow-large-adjustment?
+ (default #f)))
(define ntp-shepherd-service
(match-lambda
- (($ <ntp-configuration> ntp servers)
+ (($ <ntp-configuration> ntp servers allow-large-adjustment?)
(let ()
;; TODO: Add authentication support.
(define config
@@ -296,7 +298,10 @@ restrict -6 ::1\n"))
(requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list (string-append #$ntp "/bin/ntpd") "-n"
- "-c" #$ntpd.conf "-u" "ntpd")))
+ "-c" #$ntpd.conf "-u" "ntpd"
+ #$@(if allow-large-adjustment?
+ '("-g")
+ '()))))
(stop #~(make-kill-destructor))))))))
(define %ntp-accounts
@@ -331,12 +336,18 @@ restrict -6 ::1\n"))
ntp-service-activation)))))
(define* (ntp-service #:key (ntp ntp)
- (servers %ntp-servers))
+ (servers %ntp-servers)
+ allow-large-adjustment?)
"Return a service that runs the daemon from @var{ntp}, the
@uref{http://www.ntp.org, Network Time Protocol package}. The daemon will
-keep the system clock synchronized with that of @var{servers}."
+keep the system clock synchronized with that of @var{servers}.
+@var{allow-large-adjustment?} determines whether @command{ntpd} is allowed to
+make an initial adjustment of more than 1,000 seconds."
(service ntp-service-type
- (ntp-configuration (ntp ntp) (servers servers))))
+ (ntp-configuration (ntp ntp)
+ (servers servers)
+ (allow-large-adjustment?
+ allow-large-adjustment?))))
;;;