Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP

2016-06-14 Thread Martin Jansa
PACKAGECONFIG is preferred solution

On Tue, Jun 14, 2016 at 8:42 PM, Henry Hallam  wrote:

> On Tue, Jun 14, 2016 at 10:33 AM, Martin Jansa 
> wrote:
> > Autodetects some dependencies:
> >
> > WARNING: chrony-2.4-r0 do_package_qa: QA Issue: chrony rdepends on nss,
> > but it isn't a build dependency, missing nss in DEPENDS or
> > PACKAGECONFIG? [build-deps]
> > WARNING: chrony-2.4-r0 do_package_qa: QA Issue: chrony rdepends on
> > libedit, but it isn't a build dependency, missing libedit in DEPENDS or
> > PACKAGECONFIG? [build-deps]
> >
>
> Thanks Martin. It looks like those didn't show up for me because nss
> and libedit are both optional dependencies which weren't present on my
> system.  They are detected and used by chrony's `configure` script if
> available and unused if not (e.g. chronyc can use either editline or
> readline or neither, and if NSS is unavailable then chronyd gets built
> without secure hash support).  What's the best practice here - should
> I simply specify `configure` options to disable all these features for
> minimal dependencies, or make them all optionally available via
> PACKAGECONFIG?
>
> Henry
> --
> ___
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP

2016-06-14 Thread Henry Hallam
On Tue, Jun 14, 2016 at 10:33 AM, Martin Jansa  wrote:
> Autodetects some dependencies:
>
> WARNING: chrony-2.4-r0 do_package_qa: QA Issue: chrony rdepends on nss,
> but it isn't a build dependency, missing nss in DEPENDS or
> PACKAGECONFIG? [build-deps]
> WARNING: chrony-2.4-r0 do_package_qa: QA Issue: chrony rdepends on
> libedit, but it isn't a build dependency, missing libedit in DEPENDS or
> PACKAGECONFIG? [build-deps]
>

Thanks Martin. It looks like those didn't show up for me because nss
and libedit are both optional dependencies which weren't present on my
system.  They are detected and used by chrony's `configure` script if
available and unused if not (e.g. chronyc can use either editline or
readline or neither, and if NSS is unavailable then chronyd gets built
without secure hash support).  What's the best practice here - should
I simply specify `configure` options to disable all these features for
minimal dependencies, or make them all optionally available via
PACKAGECONFIG?

Henry
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP

2016-06-14 Thread Henry Hallam
On Mon, Jun 13, 2016 at 4:03 AM, Koen Kooi  wrote:
> That file hardcodes /etc, /var, etc
> ...
> While the recipe is well behaved and uses ${sysconfdir} and friends. You'll
> likely need to add a sed -i -e s:/var:${localstatedir}:g -e
> s:/etc/:${sysconfdir}:g -e  -e. to do_install to fix that up.

Thanks Koen, I will put out a V2 patch shortly that fixes those paths
as well as the ones in the SysVinit and systemd scripts.  I'm a little
surprised there isn't a more general way to do this since it must come
up a lot.

Henry
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP

2016-06-14 Thread Martin Jansa
On Thu, Jun 09, 2016 at 12:06:38PM -0700, Henry Hallam wrote:
> chrony is an alternative to ntpd.  In particular it may be useful
> for quasi-realtime embedded systems that have a pulse-per-second
> time reference available and need to rapidly synchronize to it after
> boot, which appears to be unachievable with ntpd.
> 
> Signed-off-by: Henry Hallam 
> ---
>  .../recipes-support/chrony/chrony/chrony.conf  | 40 +++
>  .../recipes-support/chrony/chrony/chronyd  | 58 +++
>  .../recipes-support/chrony/chrony_2.4.bb   | 83 
> ++

Autodetects some dependencies:

WARNING: chrony-2.4-r0 do_package_qa: QA Issue: chrony rdepends on nss,
but it isn't a build dependency, missing nss in DEPENDS or
PACKAGECONFIG? [build-deps]
WARNING: chrony-2.4-r0 do_package_qa: QA Issue: chrony rdepends on
libedit, but it isn't a build dependency, missing libedit in DEPENDS or
PACKAGECONFIG? [build-deps]

>  3 files changed, 181 insertions(+)
>  create mode 100644 meta-networking/recipes-support/chrony/chrony/chrony.conf
>  create mode 100644 meta-networking/recipes-support/chrony/chrony/chronyd
>  create mode 100644 meta-networking/recipes-support/chrony/chrony_2.4.bb
> 
> diff --git a/meta-networking/recipes-support/chrony/chrony/chrony.conf 
> b/meta-networking/recipes-support/chrony/chrony/chrony.conf
> new file mode 100644
> index 000..435a4f9
> --- /dev/null
> +++ b/meta-networking/recipes-support/chrony/chrony/chrony.conf
> @@ -0,0 +1,40 @@
> +# Use public NTP servers from the pool.ntp.org project.
> +pool pool.ntp.org iburst
> +
> +# Use a local timeserver in preference to the pool, if it's reachable.
> +#server 192.168.22.22 iburst minpoll 2 prefer
> +
> +# Sync to pulse-per-second from an onboard GPS.
> +# refclock PPS /dev/pps0 poll 0 prefer
> +# You'll want to enable CONFIG_PPS and CONFIG_PPS_CLIENT_GPIO in your kernel,
> +# and an entry something like this in your device tree:
> +#pps {
> +#compatible = "pps-gpio";
> +#gpios = <_gpio_0 56 0>;
> +#};
> +
> +# Record the rate at which the system clock gains/loses time,
> +# improving accuracy after reboot
> +driftfile /var/lib/chrony.drift
> +
> +# In first three updates step the system clock instead of slew
> +# if the adjustment is larger than 1 second.
> +makestep 1.0 3
> +
> +# Enable kernel synchronization of the real-time clock (RTC).
> +#rtcsync
> +
> +# Allow NTP client access from local network.
> +#allow 192.168/16
> +
> +# Serve time even if not synchronized to any NTP server.
> +#local stratum 10
> +
> +# Specify file containing keys for NTP authentication.
> +#keyfile /etc/chrony.keys
> +
> +# Specify directory for log files.
> +logdir /var/log/chrony
> +
> +# Select which information is logged.
> +#log measurements statistics tracking
> diff --git a/meta-networking/recipes-support/chrony/chrony/chronyd 
> b/meta-networking/recipes-support/chrony/chrony/chronyd
> new file mode 100644
> index 000..04f1b68
> --- /dev/null
> +++ b/meta-networking/recipes-support/chrony/chrony/chronyd
> @@ -0,0 +1,58 @@
> +#! /bin/sh
> +
> +# System V init script for chrony
> +# Adapted from the script already in meta-networking for ntpd
> +
> +### BEGIN INIT INFO
> +# Provides:chrony
> +# Required-Start:  $network $remote_fs $syslog
> +# Required-Stop:   $network $remote_fs $syslog
> +# Default-Start:   2 3 4 5
> +# Default-Stop:
> +# Short-Description: Start chrony time daemon
> +### END INIT INFO
> +
> +PATH=/sbin:/bin:/usr/bin:/usr/sbin
> +
> +DAEMON=/usr/sbin/chronyd
> +PIDFILE=/var/run/chronyd.pid
> +
> +test -x $DAEMON -a -r /etc/chrony.conf || exit 0
> +
> +# Source function library.
> +. /etc/init.d/functions
> +
> +# Functions to do individual actions
> +startdaemon(){
> + echo -n "Starting chronyd: "
> + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas 
> $DAEMON -- "$@"
> + echo "done"
> +}
> +stopdaemon(){
> + echo -n "Stopping chronyd: "
> + start-stop-daemon --stop --quiet --oknodo -p $PIDFILE
> + echo "done"
> +}
> +
> +case "$1" in
> +  start)
> + startdaemon
> + ;;
> +  stop)
> + stopdaemon
> + ;;
> +  force-reload | restart | reload)
> + stopdaemon
> + startdaemon
> + ;;
> +  status)
> + status /usr/sbin/chronyd;
> + exit $?
> + ;;
> +  *)
> + echo "Usage: chronyd { start | stop | status | restart | reload }" >&2
> + exit 1
> + ;;
> +esac
> +
> +exit 0
> diff --git a/meta-networking/recipes-support/chrony/chrony_2.4.bb 
> b/meta-networking/recipes-support/chrony/chrony_2.4.bb
> new file mode 100644
> index 000..2b6ae5b
> --- /dev/null
> +++ b/meta-networking/recipes-support/chrony/chrony_2.4.bb
> @@ -0,0 +1,83 @@
> +SUMMARY = "Versatile implementation of the Network Time Protocol"
> +DESCRIPTION = "Chrony can synchronize the system clock with NTP \
> +servers, reference clocks (e.g. GPS receiver), and manual input using \
> 

Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP

2016-06-13 Thread Koen Kooi
Op 09-06-16 om 21:06 schreef Henry Hallam:
> chrony is an alternative to ntpd.  In particular it may be useful
> for quasi-realtime embedded systems that have a pulse-per-second
> time reference available and need to rapidly synchronize to it after
> boot, which appears to be unachievable with ntpd.
> 
> Signed-off-by: Henry Hallam 
> ---
>  .../recipes-support/chrony/chrony/chrony.conf  | 40 +++

That file hardcodes /etc, /var, etc


>  .../recipes-support/chrony/chrony/chronyd  | 58 +++
>  .../recipes-support/chrony/chrony_2.4.bb   | 83 
> ++

While the recipe is well behaved and uses ${sysconfdir} and friends. You'll
likely need to add a sed -i -e s:/var:${localstatedir}:g -e
s:/etc/:${sysconfdir}:g -e  -e. to do_install to fix that up.

>  3 files changed, 181 insertions(+)
>  create mode 100644 meta-networking/recipes-support/chrony/chrony/chrony.conf
>  create mode 100644 meta-networking/recipes-support/chrony/chrony/chronyd
>  create mode 100644 meta-networking/recipes-support/chrony/chrony_2.4.bb
> 
> diff --git a/meta-networking/recipes-support/chrony/chrony/chrony.conf 
> b/meta-networking/recipes-support/chrony/chrony/chrony.conf
> new file mode 100644
> index 000..435a4f9
> --- /dev/null
> +++ b/meta-networking/recipes-support/chrony/chrony/chrony.conf
> @@ -0,0 +1,40 @@
> +# Use public NTP servers from the pool.ntp.org project.
> +pool pool.ntp.org iburst
> +
> +# Use a local timeserver in preference to the pool, if it's reachable.
> +#server 192.168.22.22 iburst minpoll 2 prefer
> +
> +# Sync to pulse-per-second from an onboard GPS.
> +# refclock PPS /dev/pps0 poll 0 prefer
> +# You'll want to enable CONFIG_PPS and CONFIG_PPS_CLIENT_GPIO in your kernel,
> +# and an entry something like this in your device tree:
> +#pps {
> +#compatible = "pps-gpio";
> +#gpios = <_gpio_0 56 0>;
> +#};
> +
> +# Record the rate at which the system clock gains/loses time,
> +# improving accuracy after reboot
> +driftfile /var/lib/chrony.drift
> +
> +# In first three updates step the system clock instead of slew
> +# if the adjustment is larger than 1 second.
> +makestep 1.0 3
> +
> +# Enable kernel synchronization of the real-time clock (RTC).
> +#rtcsync
> +
> +# Allow NTP client access from local network.
> +#allow 192.168/16
> +
> +# Serve time even if not synchronized to any NTP server.
> +#local stratum 10
> +
> +# Specify file containing keys for NTP authentication.
> +#keyfile /etc/chrony.keys
> +
> +# Specify directory for log files.
> +logdir /var/log/chrony
> +
> +# Select which information is logged.
> +#log measurements statistics tracking
> diff --git a/meta-networking/recipes-support/chrony/chrony/chronyd 
> b/meta-networking/recipes-support/chrony/chrony/chronyd
> new file mode 100644
> index 000..04f1b68
> --- /dev/null
> +++ b/meta-networking/recipes-support/chrony/chrony/chronyd
> @@ -0,0 +1,58 @@
> +#! /bin/sh
> +
> +# System V init script for chrony
> +# Adapted from the script already in meta-networking for ntpd
> +
> +### BEGIN INIT INFO
> +# Provides:chrony
> +# Required-Start:  $network $remote_fs $syslog
> +# Required-Stop:   $network $remote_fs $syslog
> +# Default-Start:   2 3 4 5
> +# Default-Stop:
> +# Short-Description: Start chrony time daemon
> +### END INIT INFO
> +
> +PATH=/sbin:/bin:/usr/bin:/usr/sbin
> +
> +DAEMON=/usr/sbin/chronyd
> +PIDFILE=/var/run/chronyd.pid
> +
> +test -x $DAEMON -a -r /etc/chrony.conf || exit 0
> +
> +# Source function library.
> +. /etc/init.d/functions
> +
> +# Functions to do individual actions
> +startdaemon(){
> + echo -n "Starting chronyd: "
> + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas 
> $DAEMON -- "$@"
> + echo "done"
> +}
> +stopdaemon(){
> + echo -n "Stopping chronyd: "
> + start-stop-daemon --stop --quiet --oknodo -p $PIDFILE
> + echo "done"
> +}
> +
> +case "$1" in
> +  start)
> + startdaemon
> + ;;
> +  stop)
> + stopdaemon
> + ;;
> +  force-reload | restart | reload)
> + stopdaemon
> + startdaemon
> + ;;
> +  status)
> + status /usr/sbin/chronyd;
> + exit $?
> + ;;
> +  *)
> + echo "Usage: chronyd { start | stop | status | restart | reload }" >&2
> + exit 1
> + ;;
> +esac
> +
> +exit 0
> diff --git a/meta-networking/recipes-support/chrony/chrony_2.4.bb 
> b/meta-networking/recipes-support/chrony/chrony_2.4.bb
> new file mode 100644
> index 000..2b6ae5b
> --- /dev/null
> +++ b/meta-networking/recipes-support/chrony/chrony_2.4.bb
> @@ -0,0 +1,83 @@
> +SUMMARY = "Versatile implementation of the Network Time Protocol"
> +DESCRIPTION = "Chrony can synchronize the system clock with NTP \
> +servers, reference clocks (e.g. GPS receiver), and manual input using \
> +wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
> +server and peer to provide a time service to other computers in 

Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP

2016-06-09 Thread Henry Hallam
On Thu, Jun 9, 2016 at 12:06 PM, Henry Hallam  wrote:
> chrony is an alternative to ntpd.  In particular it may be useful
> for quasi-realtime embedded systems that have a pulse-per-second
> time reference available and need to rapidly synchronize to it after
> boot, which appears to be unachievable with ntpd.

This is my first attempt to contribute to yocto/openembedded, so any
and all feedback (stylistic or otherwise) would be greatly
appreciated.

Thanks, Henry
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel