[oe] [meta-oe] ntp: correct systemd EnvironmentFile, add ntpdate service

Peter A. Bigot bigotp at acm.org
Wed Jan 4 02:21:05 UTC 2012


From: "Peter A. Bigot" <bigotp at acm.org>

Eliminate EnvironmentFile from systemd unit descriptions.  /etc/ntp.conf
can't be sourced to set environment variables like NTPD_ARG.  Following the
rationale at http://0pointer.de/blog/projects/on-etc-sysinit.html it isn't
needed anyway; if you don't buy that, it should be:

  EnvironmentFile=-/etc/default/ntpd

Add one-shot ntpdate service which synchronizes local clock prior to
starting ntpd (which aborts if the local time is more than 1000 seconds off
of the server).  "systemctl enable ntpdate.service" not done by default
because this would be a behavior change.

Correct comment describing how to replace ntpdate (ntpdc doesn't take those
arguments).

Add comment to ntp.conf pointing out need to remove local hardware clock as
a reference when simulating ntpdate.

Signed-off-by: Peter A. Bigot <bigotp at acm.org>
---
 meta-oe/recipes-support/ntp/files/ntp.conf        |    1 +
 meta-oe/recipes-support/ntp/files/ntpd.service    |    3 +--
 meta-oe/recipes-support/ntp/files/ntpdate.service |   11 +++++++++++
 meta-oe/recipes-support/ntp/ntp.inc               |    3 ++-
 meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb        |    4 +++-
 5 files changed, 18 insertions(+), 4 deletions(-)
 create mode 100644 meta-oe/recipes-support/ntp/files/ntpdate.service

diff --git a/meta-oe/recipes-support/ntp/files/ntp.conf b/meta-oe/recipes-support/ntp/files/ntp.conf
index 5964828..bf52440 100644
--- a/meta-oe/recipes-support/ntp/files/ntp.conf
+++ b/meta-oe/recipes-support/ntp/files/ntp.conf
@@ -7,6 +7,7 @@ driftfile /etc/ntp.drift
 # as required, or change this.
 server pool.ntp.org
 # Using local hardware clock as fallback
+# Disable this when using ntpd -q -g -x as ntpdate or it will sync to itself
 server 127.127.1.0
 fudge 127.127.1.0 stratum 14
 # Defining a default security setting
diff --git a/meta-oe/recipes-support/ntp/files/ntpd.service b/meta-oe/recipes-support/ntp/files/ntpd.service
index 420a056..bd87b1e 100644
--- a/meta-oe/recipes-support/ntp/files/ntpd.service
+++ b/meta-oe/recipes-support/ntp/files/ntpd.service
@@ -5,8 +5,7 @@ After=network.target
 [Service]
 Type=forking
 PIDFile=/run/ntpd.pid
-EnvironmentFile=/etc/ntp.conf
-ExecStart=/usr/bin/ntpd $NTPD_ARGS -p /run/ntpd.pid
+ExecStart=/usr/bin/ntpd -p /run/ntpd.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/ntp/files/ntpdate.service b/meta-oe/recipes-support/ntp/files/ntpdate.service
new file mode 100644
index 0000000..b2bc632
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/ntpdate.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Network Time Service (one-shot ntpdate mode)
+Before=ntpd.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/ntpd -q -g -x
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/ntp/ntp.inc b/meta-oe/recipes-support/ntp/ntp.inc
index b398b80..1d740f0 100644
--- a/meta-oe/recipes-support/ntp/ntp.inc
+++ b/meta-oe/recipes-support/ntp/ntp.inc
@@ -28,7 +28,8 @@ EXTRA_OECONF = "--without-openssl --without-crypto ac_cv_header_readline_history
 CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
 
 PACKAGES += "ntpdate ${PN}-bin ${PN}-tickadj ${PN}-utils"
-# NOTE: you don't need ntpdate, use "ntpdc -q -g -x"
+# NOTE: you don't need ntpdate, use "ntpd -q -g -x"
+# or the ntpdate systemd service
 
 # This should use rc.update
 FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate"
diff --git a/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb b/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb
index e2bb1a8..063d82a 100644
--- a/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb
+++ b/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb
@@ -1,6 +1,6 @@
 require ntp.inc
 
-PR = "r3"
+PR = "r4"
 
 inherit systemd
 
@@ -13,6 +13,7 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \
         file://ntpd \
         file://ntp.conf \
         file://ntpdate \
+        file://ntpdate.service \
         file://ntpd.service \
 "
 
@@ -29,6 +30,7 @@ do_install_append() {
 	install -m 755 ${WORKDIR}/ntpdate ${D}/${sysconfdir}/network/if-up.d
 
 	install -d ${D}${base_libdir}/systemd/system
+	install -m 0644 ${WORKDIR}/ntpdate.service ${D}${base_libdir}/systemd/system/
 	install -m 0644 ${WORKDIR}/ntpd.service ${D}${base_libdir}/systemd/system/
 }
 
-- 
1.7.6.4





More information about the Openembedded-devel mailing list