Re: [PATCH 1/1] services: ntpd: Make large clock adjustments if necessary.

2016-10-20 Thread Ludovic Courtès
Leo Famulari  skribis:

> On Wed, Oct 19, 2016 at 10:49:32PM +0200, Ludovic Courtès wrote:
>> 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
>>  
>
>> 
>> If that’s fine with you, I’ll commit it with a doc update.
>
> It looks good to me! Once we can run GuixSD on armhf or aarch64, I bet
> we will have lots of users with hardware lacking a battery-backed real
> time clock, and they will appreciate this option.

Good point.  Pushed as dc0322b5d12e1d97e2cc456100c44dd31bb6.

Ludo’.



Re: [PATCH 1/1] services: ntpd: Make large clock adjustments if necessary.

2016-10-19 Thread Leo Famulari
On Wed, Oct 19, 2016 at 10:49:32PM +0200, Ludovic Courtès wrote:
> 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
>  

> 
> If that’s fine with you, I’ll commit it with a doc update.

It looks good to me! Once we can run GuixSD on armhf or aarch64, I bet
we will have lots of users with hardware lacking a battery-backed real
time clock, and they will appreciate this option.



Re: [PATCH 1/1] services: ntpd: Make large clock adjustments if necessary.

2016-10-19 Thread Ludovic Courtès
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 force 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’s good idea to have defaults that match
upstream’s 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 
>> otherwise.
>> So I think this should be configurable in /etc/config.scm and the default 
>> 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?

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
 

If that’s fine with you, I’ll commit it with a doc update.

Thanks,
Ludo’.


Re: [PATCH 1/1] services: ntpd: Make large clock adjustments if necessary.

2016-10-13 Thread Leo Famulari
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 force 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.
  
> 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 
> otherwise.
> So I think this should be configurable in /etc/config.scm and the default 
> 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 :)


signature.asc
Description: PGP signature


Re: [PATCH 1/1] services: ntpd: Make large clock adjustments if necessary.

2016-10-12 Thread John Darrington
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 force it
on the user.   Some applications break if the clock makes large jumps.

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 otherwise.
So I think this should be configurable in /etc/config.scm and the default should
be not to use -g

J'

On Wed, Oct 12, 2016 at 07:21:07PM -0400, Leo Famulari wrote:
 If the system clock is more than 1000 seconds off, ntpd will exit without
 adjusting the clock.
 
 Reported by reepca on #guix.
 
 * gnu/services/networking.scm (ntp-shepherd-service): Pass '-g' when
 starting the NTP daemon.
 ---
  gnu/services/networking.scm | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
 index 7495179..5261e38 100644
 --- a/gnu/services/networking.scm
 +++ b/gnu/services/networking.scm
 @@ -296,7 +296,7 @@ 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" "-g")))
(stop #~(make-kill-destructor
  
  (define %ntp-accounts
 -- 
 2.10.1
 

-- 
Avoid eavesdropping.  Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.



signature.asc
Description: Digital signature


[PATCH 1/1] services: ntpd: Make large clock adjustments if necessary.

2016-10-12 Thread Leo Famulari
If the system clock is more than 1000 seconds off, ntpd will exit without
adjusting the clock.

Reported by reepca on #guix.

* gnu/services/networking.scm (ntp-shepherd-service): Pass '-g' when
starting the NTP daemon.
---
 gnu/services/networking.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 7495179..5261e38 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -296,7 +296,7 @@ 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" "-g")))
   (stop #~(make-kill-destructor
 
 (define %ntp-accounts
-- 
2.10.1