From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH 1/1] services: ntpd: Make large clock adjustments if necessary. Date: Wed, 19 Oct 2016 22:49:32 +0200 Message-ID: <87h9883vz7.fsf@gnu.org> References: <20161013050650.GA25727@jocasta.intra> <20161013141246.GA7431@jasmine> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33400) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bwxnw-0001t7-Di for guix-devel@gnu.org; Wed, 19 Oct 2016 16:49:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bwxnr-0006ZS-IM for guix-devel@gnu.org; Wed, 19 Oct 2016 16:49:40 -0400 In-Reply-To: <20161013141246.GA7431@jasmine> (Leo Famulari's message of "Thu, 13 Oct 2016 10:12:46 -0400") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Leo Famulari Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Leo Famulari skribis: > On Thu, Oct 13, 2016 at 07:06:50AM +0200, John Darrington wrote: >> I think that this should be a configuration item in the service, so that= the >> user can decide whether to have it or not. I don't think we should forc= e it >> on the user. Some applications break if the clock makes large jumps. > > I agree. This is really something that the system administrator should > evaluate and fix on a case-by-case basis. I agree too! And I think it=E2=80=99s good idea to have defaults that match upstream=E2=80=99s defaults. >> The ntpd authors decided that the default behaviour is not to make large= jumps >> so I think we should respect that unless there is a good reason to do ot= herwise. >> So I think this should be configurable in /etc/config.scm and the defaul= t should >> be not to use -g > > For me, I have to do this so rarely (and never on the machines I > currently use) that I am fine with having to run `ntpd -g ...` by hand. > > So, if we want to make this configurable in the OS configuration, > volunteers are welcome to work on it :) Like this? --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 7495179..ce281c5 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 servers) + (($ 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,10 +336,13 @@ 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)))) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable If that=E2=80=99s fine with you, I=E2=80=99ll commit it with a doc update. Thanks, Ludo=E2=80=99. --=-=-=--