diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-10-20 15:14:17 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-10-20 15:43:59 +0200 |
commit | dc0322b51111d12e1d97e2cc456100c44dd31bb6 (patch) | |
tree | e264a710d9e64bc222d701e0bc1417e7c14603c3 | |
parent | 6d3dda4ff54b3d44c0de560e988d3a44541038b3 (diff) | |
download | guix-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.texi | 5 | ||||
-rw-r--r-- | gnu/services/networking.scm | 23 |
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?)))) ;;; |