Re: [oe] [meta-networking][PATCH] chrony: Versatile implementation of NTP
PACKAGECONFIG is preferred solution On Tue, Jun 14, 2016 at 8:42 PM, Henry Hallamwrote: > 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
On Tue, Jun 14, 2016 at 10:33 AM, Martin Jansawrote: > 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
On Mon, Jun 13, 2016 at 4:03 AM, Koen Kooiwrote: > 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
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
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
On Thu, Jun 9, 2016 at 12:06 PM, Henry Hallamwrote: > 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