All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing
@ 2014-08-28 12:06 Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 1/5] ntp: re-enable server debugging and control by PACKAGECONFIG Peter A. Bigot
                   ` (4 more replies)
  0 siblings, 5 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 12:06 UTC (permalink / raw)
  To: openembedded-devel

The first patch restores server debugging capability to NTP, a feature
that is necessary when diagnosing configuration issues.

The remaining patches make it possible to use the pulse-per-second
capability of GPS and Linux RFC 2783 kernel PPS support to synchronize
clocks to microsecond accuracy, either using gpsd as a mediator or
using ntp directly.

Peter A. Bigot (5):
  ntp: re-enable server debugging and control by PACKAGECONFIG
  gpsd: update to 3.10
  pps-tools: add recipe
  gpsd: add optional support for KPPS interface
  ntp: add optional support for KPPS interface

 .../ntp/files/ntp-disable-debugging.patch          | 23 ------------
 meta-networking/recipes-support/ntp/ntp.inc        |  6 ++-
 ...truct-respect-sysroot-also-in-SPLINTOPTS.patch} | 19 ++++++----
 .../0002-SConstruct-remove-rpath.patch}            | 19 ++++++----
 ...refix-includepy-with-sysroot-and-drop-sy.patch} | 27 ++++++++------
 ...isable-html-and-man-docs-building-becaus.patch} | 43 ++++++++++++----------
 .../gpsd/{gpsd_3.7.bb => gpsd_3.10.bb}             | 17 +++++----
 meta-oe/recipes-support/pps-tools/pps-tools_git.bb | 16 ++++++++
 8 files changed, 89 insertions(+), 81 deletions(-)
 delete mode 100644 meta-networking/recipes-support/ntp/files/ntp-disable-debugging.patch
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch => gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch} (61%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0004-SConstruct-remove-rpath.patch => gpsd-3.10/0002-SConstruct-remove-rpath.patch} (75%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch => gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch} (82%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch => gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch} (62%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd_3.7.bb => gpsd_3.10.bb} (91%)
 create mode 100644 meta-oe/recipes-support/pps-tools/pps-tools_git.bb

-- 
1.8.5.5



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [meta-oe][PATCH 1/5] ntp: re-enable server debugging and control by PACKAGECONFIG
  2014-08-28 12:06 [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing Peter A. Bigot
@ 2014-08-28 12:06 ` Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 2/5] gpsd: update to 3.10 Peter A. Bigot
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 12:06 UTC (permalink / raw)
  To: openembedded-devel

The description in a previous patch to disable debugging is incorrect.
Although the option is default-enabled in configure.ac, configure does
respect the option that disables it.

In ntp 4.2.7 the option code is refactored to ntp_debug.m4 and has an
effect in sntp as well.  Adding --disable-debugging to the top-level
configure options overrides the default for both 4.2.6 and 4.2.7 without
patching the distribution.

Make the selection explicit and configurable, but restore the historical
default.  Absence of debugging capability in the server makes it
difficult to validate complex configurations.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 .../ntp/files/ntp-disable-debugging.patch          | 23 ----------------------
 meta-networking/recipes-support/ntp/ntp.inc        |  5 +++--
 2 files changed, 3 insertions(+), 25 deletions(-)
 delete mode 100644 meta-networking/recipes-support/ntp/files/ntp-disable-debugging.patch

diff --git a/meta-networking/recipes-support/ntp/files/ntp-disable-debugging.patch b/meta-networking/recipes-support/ntp/files/ntp-disable-debugging.patch
deleted file mode 100644
index 242276e..0000000
--- a/meta-networking/recipes-support/ntp/files/ntp-disable-debugging.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-set ntp_ok to no if ntp debugging is not enabled.
-
-Upstream-status: Pending
-
-There is a problem in configure.ac file that whether or not
-'--enable-debugging' is specified in configure cmdline, debugging
-is always enabled.
-We should disable ntp debugging by default.
-
-Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
-
----
---- a/configure.ac
-+++ b/configure.ac
-@@ -2458,7 +2458,7 @@
-         [+ include ntpd debugging code]
-     )],
-     [ntp_ok=$enableval],
--    [ntp_ok=yes]
-+    [ntp_ok=no]
- )
- case "$ntp_ok" in
-  yes)
diff --git a/meta-networking/recipes-support/ntp/ntp.inc b/meta-networking/recipes-support/ntp/ntp.inc
index b63f202..55926e0 100644
--- a/meta-networking/recipes-support/ntp/ntp.inc
+++ b/meta-networking/recipes-support/ntp/ntp.inc
@@ -23,7 +23,6 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.g
            file://sntp.service \
            file://sntp \
            file://ntpd.list \
-           file://ntp-disable-debugging.patch \
            file://CVE-2013-5211.patch \
 "
 
@@ -38,7 +37,8 @@ USERADD_PACKAGES = "${PN}"
 USERADD_PARAM_${PN} = "--system --home-dir /var/lib/ntp \
                        --shell /bin/false --user-group ntp"
 
-PACKAGECONFIG ??= "cap"
+# NB: debug is default-enabled by NTP; keep it default-enabled here.
+PACKAGECONFIG ??= "cap debug"
 PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
                           --with-openssl-incdir=${STAGING_INCDIR} \
                           --with-crypto, \
@@ -46,6 +46,7 @@ PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
                           openssl"
 PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap"
 PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline"
+PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging"
 
 do_install_append() {
     install -d ${D}${sysconfdir}/init.d
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [meta-oe][PATCH 2/5] gpsd: update to 3.10
  2014-08-28 12:06 [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 1/5] ntp: re-enable server debugging and control by PACKAGECONFIG Peter A. Bigot
@ 2014-08-28 12:06 ` Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 3/5] pps-tools: add recipe Peter A. Bigot
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 12:06 UTC (permalink / raw)
  To: openembedded-devel

Patches rebased onto new version with no material changes.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 ...truct-respect-sysroot-also-in-SPLINTOPTS.patch} | 19 ++++++----
 .../0002-SConstruct-remove-rpath.patch}            | 19 ++++++----
 ...refix-includepy-with-sysroot-and-drop-sy.patch} | 27 ++++++++------
 ...isable-html-and-man-docs-building-becaus.patch} | 43 ++++++++++++----------
 .../gpsd/{gpsd_3.7.bb => gpsd_3.10.bb}             | 14 +++----
 5 files changed, 66 insertions(+), 56 deletions(-)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch => gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch} (61%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0004-SConstruct-remove-rpath.patch => gpsd-3.10/0002-SConstruct-remove-rpath.patch} (75%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch => gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch} (82%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.7/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch => gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch} (62%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd_3.7.bb => gpsd_3.10.bb} (92%)

diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
similarity index 61%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.7/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
index 40baa01..c4134f4 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
+++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
@@ -1,22 +1,25 @@
-From f5f262be8ae54bd0c0f52802f2007ec89163756f Mon Sep 17 00:00:00 2001
+From 3c5fb3a8691ac711ea93edf8e0b42bffc62b197e Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Tue, 24 Apr 2012 11:52:35 +0200
-Subject: [PATCH 1/2] SConstruct: respect sysroot also in SPLINTOPTS
+Subject: [PATCH 1/4] SConstruct: respect sysroot also in SPLINTOPTS
+
+Upstream-Status: Inappropriate [embedded specific]
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
 ---
- SConstruct |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
+ SConstruct | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/SConstruct b/SConstruct
-index a25e88a..a1bddb9 100644
+index 14e2f59..f0cafa8 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -1277,7 +1277,10 @@ def Utility(target, source, action):
- 
+@@ -1414,7 +1414,10 @@ def Utility(target, source, action):
  # Report splint warnings
  # Note: test_bits.c is unsplintable because of the PRI64 macros.
+ # If you get preprocessor or fatal errors, add +showscan.
 -splintopts = "-I/usr/include/libusb-1.0 +quiet"
 +if not env['sysroot']:
 +    splintopts = "-I/usr/include/libusb-1.0 +quiet"
@@ -26,5 +29,5 @@ index a25e88a..a1bddb9 100644
  ma_status, ma = _getstatusoutput('dpkg-architecture -qDEB_HOST_MULTIARCH')
  if ma_status == 0:
 -- 
-1.7.5.4
+1.8.5.5
 
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0004-SConstruct-remove-rpath.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-remove-rpath.patch
similarity index 75%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.7/0004-SConstruct-remove-rpath.patch
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-remove-rpath.patch
index 83b98bb..083a662 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0004-SConstruct-remove-rpath.patch
+++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-remove-rpath.patch
@@ -1,7 +1,7 @@
-From 7d736bbd517c12d19d7b85a5b0db84732b2f86da Mon Sep 17 00:00:00 2001
+From d090638ff983e509162d5e3b62aa4918de4aa5fa Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Tue, 24 Apr 2012 16:24:35 +0200
-Subject: [PATCH 2/2] SConstruct: remove rpath
+Subject: [PATCH 2/4] SConstruct: remove rpath
 
 * even with correct prefix (without DESTDIR) included it's redundant
   WARNING: QA Issue: libgps:
@@ -13,19 +13,22 @@ Subject: [PATCH 2/2] SConstruct: remove rpath
   in file
   /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
 
+Upstream-Status: Inapppropriate [embedded specific]
+
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
 ---
- SConstruct |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
+ SConstruct | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index a1bddb9..3e7c607 100644
+index f0cafa8..ff46713 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -1205,8 +1205,11 @@ if qt_env:
+@@ -1340,8 +1340,11 @@ if qt_env:
+     binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib))
  
- # We don't use installdir here in order to avoid having DESTDIR affect the rpath
  if env["shared"] and env["chrpath"]:
 -    env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
 -                      % (installdir('libdir', False), ))
@@ -38,5 +41,5 @@ index a1bddb9..3e7c607 100644
  if not env['debug'] and not env['profiling'] and env['strip']:
      env.AddPostAction(binaryinstall, '$STRIP $TARGET')
 -- 
-1.7.5.4
+1.8.5.5
 
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
similarity index 82%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.7/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
index c6eb03b..1d8c14b 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
+++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
@@ -1,8 +1,8 @@
-From dd3ca38b27cce93f7e932abaa27b41371234fa90 Mon Sep 17 00:00:00 2001
+From ad7b06d375730b30f181c5efb3bf21418f296f73 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Tue, 24 Apr 2012 18:45:14 +0200
-Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
- from python_lib_dir
+Subject: [PATCH 3/4] SConstruct: prefix includepy with sysroot and drop
+ sysroot from python_lib_dir
 
 * without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix
   and with PYTHONPATH from OE it's pointing to native python dir
@@ -30,19 +30,22 @@ Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
 * python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
   returns path to target sysroot
 
+Upstream-Status: Inappropriate [embedded specific]
+
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
 ---
- SConstruct |    9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
+ SConstruct | 9 +++++++++
+ 1 file changed, 9 insertions(+)
 
 diff --git a/SConstruct b/SConstruct
-index 3c919fc..8478181 100644
+index ff46713..0e518e7 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -932,6 +932,12 @@ else:
-         if vars[i] is None:
-             vars[i] = []
-     (cc, cxx, opt, basecflags, ccshared, ldshared, so_ext, includepy, ldflags) = vars
+@@ -1089,6 +1089,12 @@ else:
+         basecflags += ' -coverage'
+         ldflags += ' -coverage'
+         ldshared += ' -coverage'
 +
 +    if env['sysroot']:
 +        print "Prefixing includepy '%s' with sysroot prefix" % includepy
@@ -52,7 +55,7 @@ index 3c919fc..8478181 100644
      # in case CC/CXX was set to the scan-build wrapper,
      # ensure that we build the python modules with scan-build, too
      if env['CC'] is None or env['CC'].find('scan-build') < 0:
-@@ -1165,11 +1171,14 @@ if not env['python']:
+@@ -1353,11 +1359,14 @@ if not env['python']:
      python_install = []
  else:
      python_lib_dir = sysconfig.get_python_lib(plat_specific=1)
@@ -68,5 +71,5 @@ index 3c919fc..8478181 100644
      python_modules_install = python_env.Install( DESTDIR + python_module_dir,
                                                  python_modules)
 -- 
-1.7.8.5
+1.8.5.5
 
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
similarity index 62%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.7/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
index 9db2432..8527f0d 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.7/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch
+++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
@@ -1,7 +1,7 @@
-From ca1a781afbd68697ef2f573557f1f93ec7ab8d3c Mon Sep 17 00:00:00 2001
+From 697e2e9ff97487266d817cdd41bacc83f681e3d7 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Sun, 29 Apr 2012 00:05:59 +0200
-Subject: [PATCH] SConstruct: disable html and man docs building because
+Subject: [PATCH 4/4] SConstruct: disable html and man docs building because
  xmlto-native from OE is broken
 
 It will try to load dtd and fail:
@@ -20,30 +20,33 @@ It will try to load dtd and fail:
 | scons: *** [gpsctl.1] Error 1
 | scons: building terminated because of errors.
 
+Upstream-Status: Inappropriate [disable feature]
+
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
 ---
- SConstruct |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ SConstruct | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index 9c0f751..8236abb 100644
+index 0e518e7..c01a71b 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -560,12 +560,12 @@ size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size);
- 
+@@ -704,12 +704,12 @@ size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size);
  
- manbuilder = mangenerator = htmlbuilder = None
--if config.CheckXsltproc():
-+if False and config.CheckXsltproc():
-     mangenerator = 'xsltproc'
-     build = "xsltproc --nonet %s $SOURCE >$TARGET"
-     htmlbuilder = build % docbook_html_uri
-     manbuilder = build % docbook_man_uri
--elif WhereIs("xmlto"):
-+elif False and WhereIs("xmlto"):
-     mangenerator = 'xmlto'
-     htmlbuilder = "xmlto html-nochunks $SOURCE; mv `basename $TARGET` $TARGET"
-     manbuilder = "xmlto man $SOURCE; mv `basename $TARGET` $TARGET"
+     manbuilder = mangenerator = htmlbuilder = None
+     if env['manbuild']:
+-        if config.CheckXsltproc():
++        if False and config.CheckXsltproc():
+             mangenerator = 'xsltproc'
+             build = "xsltproc --nonet %s $SOURCE >$TARGET"
+             htmlbuilder = build % docbook_html_uri
+             manbuilder = build % docbook_man_uri
+-        elif WhereIs("xmlto"):
++        elif False and WhereIs("xmlto"):
+             mangenerator = 'xmlto'
+             xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` `dirname $TARGET`"
+             htmlbuilder = xmlto % "html-nochunks"
 -- 
-1.7.8.6
+1.8.5.5
 
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
similarity index 92%
rename from meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb
rename to meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
index 8c6a6f7..d12c7a8 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
@@ -7,20 +7,18 @@ PROVIDES = "virtual/gpsd"
 
 EXTRANATIVEPATH += "chrpath-native"
 
-PR = "r14"
-
 SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
-    file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
-    file://0004-SConstruct-remove-rpath.patch \
-    file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
-    file://0001-SConstruct-disable-html-and-man-docs-building-becaus.patch \
+    file://0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
+    file://0002-SConstruct-remove-rpath.patch \
+    file://0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
+    file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
     file://gpsd-default \
     file://gpsd \
     file://60-gpsd.rules \
     file://gpsd.service \
 "
-SRC_URI[md5sum] = "52d9785eaf1a51298bb8900dbde88f98"
-SRC_URI[sha256sum] = "7800c478ee9d7ca7a502b0f892828561b1fbf7bc69d9d38c447c82c3628302ac"
+SRC_URI[md5sum] = "fc5b03aae38b9b5b6880b31924d0ace3"
+SRC_URI[sha256sum] = "706fc2c1cf3dfbf87c941f543381bccc9c4dc9f8240eec407dcbf2f70b854320"
 
 inherit scons update-rc.d python-dir pythonnative systemd
 
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [meta-oe][PATCH 3/5] pps-tools: add recipe
  2014-08-28 12:06 [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 1/5] ntp: re-enable server debugging and control by PACKAGECONFIG Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 2/5] gpsd: update to 3.10 Peter A. Bigot
@ 2014-08-28 12:06 ` Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface Peter A. Bigot
  2014-08-28 12:06 ` [meta-oe][PATCH 5/5] ntp: add optional " Peter A. Bigot
  4 siblings, 0 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 12:06 UTC (permalink / raw)
  To: openembedded-devel

This provides some utilities and a user-space header necessary to use
the Linux KPPS (RFC 2783) capabilities of gpsd and ntp.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 meta-oe/recipes-support/pps-tools/pps-tools_git.bb | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 meta-oe/recipes-support/pps-tools/pps-tools_git.bb

diff --git a/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
new file mode 100644
index 0000000..73c46ee
--- /dev/null
+++ b/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "User-space tools for LinuxPPS"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+PV = "0.0.0+git${SRCPV}"
+SRCREV = "0deb9c7e135e9380a6d09e9d2e938a146bb698c8"
+SRC_URI = "git://github.com/ago/pps-tools.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+        install -d ${D}${bindir} ${D}${includedir} \
+                   ${D}${includedir}/sys
+        oe_runmake 'DESTDIR=${D}' install
+}
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 12:06 [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing Peter A. Bigot
                   ` (2 preceding siblings ...)
  2014-08-28 12:06 ` [meta-oe][PATCH 3/5] pps-tools: add recipe Peter A. Bigot
@ 2014-08-28 12:06 ` Peter A. Bigot
  2014-08-28 12:53   ` Burton, Ross
                     ` (2 more replies)
  2014-08-28 12:06 ` [meta-oe][PATCH 5/5] ntp: add optional " Peter A. Bigot
  4 siblings, 3 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 12:06 UTC (permalink / raw)
  To: openembedded-devel

gpsd by default builds with PPS (pulse-per-second) support, but without
kernel support to capture the edge of the pulse the accuracy is only
+/-5us.  Under Linux the pps-tools package installs the header required
for the user-level API to the RFC 2783 KPPS interface.  If gpsd detects
this header, it will use the API to improve accuracy to +/-1us.

See: http://www.catb.org/gpsd/gpsd-time-service-howto.html#_enabling_pps

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
index d12c7a8..1c2d9eb 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
@@ -20,6 +20,9 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
 SRC_URI[md5sum] = "fc5b03aae38b9b5b6880b31924d0ace3"
 SRC_URI[sha256sum] = "706fc2c1cf3dfbf87c941f543381bccc9c4dc9f8240eec407dcbf2f70b854320"
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[kpps] = ",,pps-tools"
+
 inherit scons update-rc.d python-dir pythonnative systemd
 
 INITSCRIPT_NAME = "gpsd"
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [meta-oe][PATCH 5/5] ntp: add optional support for KPPS interface
  2014-08-28 12:06 [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing Peter A. Bigot
                   ` (3 preceding siblings ...)
  2014-08-28 12:06 ` [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface Peter A. Bigot
@ 2014-08-28 12:06 ` Peter A. Bigot
  2014-08-28 17:43   ` [meta-networking][PATCH v2] ntp: add deterministic " Peter A. Bigot
  4 siblings, 1 reply; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 12:06 UTC (permalink / raw)
  To: openembedded-devel

ntp checks for presence of sys/timepps.h to determine whether the kernel
supports the RFC 2783 KPPS interface.  Without this feature the ATOM
clock driver does not work, and other drivers like NMEA require offset
configuration.

See: http://doc.ntp.org/4.2.6/kernpps.html

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 meta-networking/recipes-support/ntp/ntp.inc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta-networking/recipes-support/ntp/ntp.inc b/meta-networking/recipes-support/ntp/ntp.inc
index 55926e0..fc50fe3 100644
--- a/meta-networking/recipes-support/ntp/ntp.inc
+++ b/meta-networking/recipes-support/ntp/ntp.inc
@@ -47,6 +47,7 @@ PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
 PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap"
 PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline"
 PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging"
+PACKAGECONFIG[kpps] = ",,pps-tools"
 
 do_install_append() {
     install -d ${D}${sysconfdir}/init.d
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 12:06 ` [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface Peter A. Bigot
@ 2014-08-28 12:53   ` Burton, Ross
  2014-08-28 13:05     ` Peter A. Bigot
  2014-08-28 14:29   ` Martin Jansa
  2014-08-28 17:42   ` [meta-oe][PATCH v2] gpsd: add deterministic " Peter A. Bigot
  2 siblings, 1 reply; 19+ messages in thread
From: Burton, Ross @ 2014-08-28 12:53 UTC (permalink / raw)
  To: OE-devel

On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
> +PACKAGECONFIG ??= ""
> +PACKAGECONFIG[kpps] = ",,pps-tools"

That's not actually deterministic - if pps-tools is installed but the
packageconfig option is disabled then gpsd will still enable the
support.

Ross


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 12:53   ` Burton, Ross
@ 2014-08-28 13:05     ` Peter A. Bigot
  2014-08-28 14:32       ` Martin Jansa
  0 siblings, 1 reply; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 13:05 UTC (permalink / raw)
  To: openembedded-devel

On 08/28/2014 07:53 AM, Burton, Ross wrote:
> On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
>> +PACKAGECONFIG ??= ""
>> +PACKAGECONFIG[kpps] = ",,pps-tools"
> That's not actually deterministic - if pps-tools is installed but the
> packageconfig option is disabled then gpsd will still enable the
> support.

Yeah, I'm aware of that.  It's also not something that can be 
controlled, since gpsd's author doesn't believe in configuration options 
to enable features: every capability is enabled or disabled by 
inspecting the environment at compile-time.

Although ntp does support some explicit enable/disable flags, it too 
fails to provide a way to say "Pay no attention to that PPS header, it 
isn't really there."

For this situation I don't think there's a big issue.  The PACKAGECONFIG 
setting ensures that the header will be available if the feature is 
desired.  If it happens to be present but PPS support isn't explicitly 
requested, there's no failure in either build or runtime: it's still 
gated by runtime checks for PPS sources and the option being enabled in 
the Linux kernel.  (There are no runtime libraries that need to be 
installed to use KPPS.)

Is this going to be a problem with the patch being accepted?

Peter


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 12:06 ` [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface Peter A. Bigot
  2014-08-28 12:53   ` Burton, Ross
@ 2014-08-28 14:29   ` Martin Jansa
  2014-08-28 17:42   ` [meta-oe][PATCH v2] gpsd: add deterministic " Peter A. Bigot
  2 siblings, 0 replies; 19+ messages in thread
From: Martin Jansa @ 2014-08-28 14:29 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1752 bytes --]

On Thu, Aug 28, 2014 at 07:06:20AM -0500, Peter A. Bigot wrote:
> gpsd by default builds with PPS (pulse-per-second) support, but without
> kernel support to capture the edge of the pulse the accuracy is only
> +/-5us.  Under Linux the pps-tools package installs the header required
> for the user-level API to the RFC 2783 KPPS interface.  If gpsd detects
> this header, it will use the API to improve accuracy to +/-1us.
> 
> See: http://www.catb.org/gpsd/gpsd-time-service-howto.html#_enabling_pps
> 
> Signed-off-by: Peter A. Bigot <pab@pabigot.com>
> ---
>  meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
> index d12c7a8..1c2d9eb 100644
> --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
> +++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
> @@ -20,6 +20,9 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
>  SRC_URI[md5sum] = "fc5b03aae38b9b5b6880b31924d0ace3"
>  SRC_URI[sha256sum] = "706fc2c1cf3dfbf87c941f543381bccc9c4dc9f8240eec407dcbf2f70b854320"
>  
> +PACKAGECONFIG ??= ""
> +PACKAGECONFIG[kpps] = ",,pps-tools"

Both recipes need some way of explicit disable of pps-tools, so that the
result is the same when building gpsd or ntp before or after pps-tools.

>  inherit scons update-rc.d python-dir pythonnative systemd
>  
>  INITSCRIPT_NAME = "gpsd"
> -- 
> 1.8.5.5
> 
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 13:05     ` Peter A. Bigot
@ 2014-08-28 14:32       ` Martin Jansa
  2014-08-28 15:23         ` Peter A. Bigot
  0 siblings, 1 reply; 19+ messages in thread
From: Martin Jansa @ 2014-08-28 14:32 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1784 bytes --]

On Thu, Aug 28, 2014 at 08:05:54AM -0500, Peter A. Bigot wrote:
> On 08/28/2014 07:53 AM, Burton, Ross wrote:
> > On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
> >> +PACKAGECONFIG ??= ""
> >> +PACKAGECONFIG[kpps] = ",,pps-tools"
> > That's not actually deterministic - if pps-tools is installed but the
> > packageconfig option is disabled then gpsd will still enable the
> > support.
> 
> Yeah, I'm aware of that.  It's also not something that can be 
> controlled, since gpsd's author doesn't believe in configuration options 
> to enable features: every capability is enabled or disabled by 
> inspecting the environment at compile-time.
> 
> Although ntp does support some explicit enable/disable flags, it too 
> fails to provide a way to say "Pay no attention to that PPS header, it 
> isn't really there."

Then we need to patch their configure.

> For this situation I don't think there's a big issue.  The PACKAGECONFIG 
> setting ensures that the header will be available if the feature is 
> desired.  If it happens to be present but PPS support isn't explicitly 
> requested, there's no failure in either build or runtime: it's still 
> gated by runtime checks for PPS sources and the option being enabled in 
> the Linux kernel.  (There are no runtime libraries that need to be 
> installed to use KPPS.)
> 
> Is this going to be a problem with the patch being accepted?

Yes

people can be used to have KPPS support enabled by "accident" e.g.
because they are building ntp with KPPS support and pps-tools is almost
always built before gpsd..

and then once it's built in different order and end-user will be
surprised by lost KPPS support from gpsd.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 14:32       ` Martin Jansa
@ 2014-08-28 15:23         ` Peter A. Bigot
  2014-08-28 15:47           ` Martin Jansa
  2014-08-28 15:48           ` Peter A. Bigot
  0 siblings, 2 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 15:23 UTC (permalink / raw)
  To: openembedded-devel

On 08/28/2014 09:32 AM, Martin Jansa wrote:
> On Thu, Aug 28, 2014 at 08:05:54AM -0500, Peter A. Bigot wrote:
>> On 08/28/2014 07:53 AM, Burton, Ross wrote:
>>> On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
>>>> +PACKAGECONFIG ??= ""
>>>> +PACKAGECONFIG[kpps] = ",,pps-tools"
>>> That's not actually deterministic - if pps-tools is installed but the
>>> packageconfig option is disabled then gpsd will still enable the
>>> support.
>> Yeah, I'm aware of that.  It's also not something that can be
>> controlled, since gpsd's author doesn't believe in configuration options
>> to enable features: every capability is enabled or disabled by
>> inspecting the environment at compile-time.
>>
>> Although ntp does support some explicit enable/disable flags, it too
>> fails to provide a way to say "Pay no attention to that PPS header, it
>> isn't really there."
> Then we need to patch their configure.
>
>> For this situation I don't think there's a big issue.  The PACKAGECONFIG
>> setting ensures that the header will be available if the feature is
>> desired.  If it happens to be present but PPS support isn't explicitly
>> requested, there's no failure in either build or runtime: it's still
>> gated by runtime checks for PPS sources and the option being enabled in
>> the Linux kernel.  (There are no runtime libraries that need to be
>> installed to use KPPS.)
>>
>> Is this going to be a problem with the patch being accepted?
> Yes
>
> people can be used to have KPPS support enabled by "accident" e.g.
> because they are building ntp with KPPS support and pps-tools is almost
> always built before gpsd..and then once it's built in different order and end-user will be
> surprised by lost KPPS support from gpsd.

The number of people who will use KPPS is incredibly small, and nobody's 
going to use it unintentionally as it requires on-target configuration.  
Those who need it, though, have no recourse other than to build ntpd or 
gpsd outside of OE if patches like these aren't present.

I understand the reasoning and agree in theory that absolute determinism 
would be ideal, but believe hacking the ntp and gpsd configuration 
infrastructure to explicitly disable use of a detected PPS header would 
present a bigger risk and long-term cost to stability and 
maintainability in OE than the possibility you've identified.  So that 
solution isn't something I'm going to take on.

An alternative is to add kpps to the default PACKAGECONFIG, so the 
required header is normally available.  The cost of the feature's 
presence in the packages is nearly zero (a slight increase in daemon 
code size, and an extra check when the process starts.)  Would that be 
acceptable?

If we can't come to an agreement, then the only patch that's really 
important is the first one which restores the ability to diagnose 
misconfigured NTP systems.  Please let me know whether I should mark the 
others as withdrawn in patchwork.

Peter


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 15:23         ` Peter A. Bigot
@ 2014-08-28 15:47           ` Martin Jansa
  2014-08-28 15:51             ` Peter A. Bigot
  2014-08-28 15:48           ` Peter A. Bigot
  1 sibling, 1 reply; 19+ messages in thread
From: Martin Jansa @ 2014-08-28 15:47 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 3337 bytes --]

On Thu, Aug 28, 2014 at 10:23:54AM -0500, Peter A. Bigot wrote:
> On 08/28/2014 09:32 AM, Martin Jansa wrote:
> > On Thu, Aug 28, 2014 at 08:05:54AM -0500, Peter A. Bigot wrote:
> >> On 08/28/2014 07:53 AM, Burton, Ross wrote:
> >>> On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
> >>>> +PACKAGECONFIG ??= ""
> >>>> +PACKAGECONFIG[kpps] = ",,pps-tools"
> >>> That's not actually deterministic - if pps-tools is installed but the
> >>> packageconfig option is disabled then gpsd will still enable the
> >>> support.
> >> Yeah, I'm aware of that.  It's also not something that can be
> >> controlled, since gpsd's author doesn't believe in configuration options
> >> to enable features: every capability is enabled or disabled by
> >> inspecting the environment at compile-time.
> >>
> >> Although ntp does support some explicit enable/disable flags, it too
> >> fails to provide a way to say "Pay no attention to that PPS header, it
> >> isn't really there."
> > Then we need to patch their configure.
> >
> >> For this situation I don't think there's a big issue.  The PACKAGECONFIG
> >> setting ensures that the header will be available if the feature is
> >> desired.  If it happens to be present but PPS support isn't explicitly
> >> requested, there's no failure in either build or runtime: it's still
> >> gated by runtime checks for PPS sources and the option being enabled in
> >> the Linux kernel.  (There are no runtime libraries that need to be
> >> installed to use KPPS.)
> >>
> >> Is this going to be a problem with the patch being accepted?
> > Yes
> >
> > people can be used to have KPPS support enabled by "accident" e.g.
> > because they are building ntp with KPPS support and pps-tools is almost
> > always built before gpsd..and then once it's built in different order and end-user will be
> > surprised by lost KPPS support from gpsd.
> 
> The number of people who will use KPPS is incredibly small, and nobody's 
> going to use it unintentionally as it requires on-target configuration.  
> Those who need it, though, have no recourse other than to build ntpd or 
> gpsd outside of OE if patches like these aren't present.
> 
> I understand the reasoning and agree in theory that absolute determinism 
> would be ideal, but believe hacking the ntp and gpsd configuration 
> infrastructure to explicitly disable use of a detected PPS header would 
> present a bigger risk and long-term cost to stability and 
> maintainability in OE than the possibility you've identified.  So that 
> solution isn't something I'm going to take on.
> 
> An alternative is to add kpps to the default PACKAGECONFIG, so the 
> required header is normally available.  The cost of the feature's 
> presence in the packages is nearly zero (a slight increase in daemon 
> code size, and an extra check when the process starts.)  Would that be 
> acceptable?

More acceptable than the undeterministic behavior - you should even add
it to DEPENDS.

> If we can't come to an agreement, then the only patch that's really 
> important is the first one which restores the ability to diagnose 
> misconfigured NTP systems.  Please let me know whether I should mark the 
> others as withdrawn in patchwork.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 15:23         ` Peter A. Bigot
  2014-08-28 15:47           ` Martin Jansa
@ 2014-08-28 15:48           ` Peter A. Bigot
  2014-08-28 16:25             ` Martin Jansa
  1 sibling, 1 reply; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 15:48 UTC (permalink / raw)
  To: openembedded-devel

On 08/28/2014 10:23 AM, Peter A. Bigot wrote:
> On 08/28/2014 09:32 AM, Martin Jansa wrote:
>> On Thu, Aug 28, 2014 at 08:05:54AM -0500, Peter A. Bigot wrote:
>>> On 08/28/2014 07:53 AM, Burton, Ross wrote:
>>>> On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
>>>>> +PACKAGECONFIG ??= ""
>>>>> +PACKAGECONFIG[kpps] = ",,pps-tools"
>>>> That's not actually deterministic - if pps-tools is installed but the
>>>> packageconfig option is disabled then gpsd will still enable the
>>>> support.
>>> Yeah, I'm aware of that.  It's also not something that can be
>>> controlled, since gpsd's author doesn't believe in configuration 
>>> options
>>> to enable features: every capability is enabled or disabled by
>>> inspecting the environment at compile-time.
>>>
>>> Although ntp does support some explicit enable/disable flags, it too
>>> fails to provide a way to say "Pay no attention to that PPS header, it
>>> isn't really there."
>> Then we need to patch their configure.
>>
>>> For this situation I don't think there's a big issue.  The 
>>> PACKAGECONFIG
>>> setting ensures that the header will be available if the feature is
>>> desired.  If it happens to be present but PPS support isn't explicitly
>>> requested, there's no failure in either build or runtime: it's still
>>> gated by runtime checks for PPS sources and the option being enabled in
>>> the Linux kernel.  (There are no runtime libraries that need to be
>>> installed to use KPPS.)
>>>
>>> Is this going to be a problem with the patch being accepted?
>> Yes
>>
>> people can be used to have KPPS support enabled by "accident" e.g.
>> because they are building ntp with KPPS support and pps-tools is almost
>> always built before gpsd..and then once it's built in different order 
>> and end-user will be
>> surprised by lost KPPS support from gpsd.
>
> The number of people who will use KPPS is incredibly small, and 
> nobody's going to use it unintentionally as it requires on-target 
> configuration.  Those who need it, though, have no recourse other than 
> to build ntpd or gpsd outside of OE if patches like these aren't present.
>
> I understand the reasoning and agree in theory that absolute 
> determinism would be ideal, but believe hacking the ntp and gpsd 
> configuration infrastructure to explicitly disable use of a detected 
> PPS header would present a bigger risk and long-term cost to stability 
> and maintainability in OE than the possibility you've identified.  So 
> that solution isn't something I'm going to take on.
>
> An alternative is to add kpps to the default PACKAGECONFIG, so the 
> required header is normally available.  The cost of the feature's 
> presence in the packages is nearly zero (a slight increase in daemon 
> code size, and an extra check when the process starts.) Would that be 
> acceptable?
>
> If we can't come to an agreement, then the only patch that's really 
> important is the first one which restores the ability to diagnose 
> misconfigured NTP systems.  Please let me know whether I should mark 
> the others as withdrawn in patchwork.

If it matters, note that withdrawing the patches won't change the status 
quo: ntpd and gpsd are feature-sensitive to the presence of 
sys/timepps.h in the build environment, e.g. if pps-tools is added by 
another layer.  The only difference is that without the patches there's 
no clue in their recipes that this could happen and no way to provide 
determinism in the want-kpps situation.

Peter


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 15:47           ` Martin Jansa
@ 2014-08-28 15:51             ` Peter A. Bigot
  0 siblings, 0 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 15:51 UTC (permalink / raw)
  To: openembedded-devel

On 08/28/2014 10:47 AM, Martin Jansa wrote:
> On Thu, Aug 28, 2014 at 10:23:54AM -0500, Peter A. Bigot wrote:
>> On 08/28/2014 09:32 AM, Martin Jansa wrote:
>>> On Thu, Aug 28, 2014 at 08:05:54AM -0500, Peter A. Bigot wrote:
>>>> On 08/28/2014 07:53 AM, Burton, Ross wrote:
>>>>> On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
>>>>>> +PACKAGECONFIG ??= ""
>>>>>> +PACKAGECONFIG[kpps] = ",,pps-tools"
>>>>> That's not actually deterministic - if pps-tools is installed but the
>>>>> packageconfig option is disabled then gpsd will still enable the
>>>>> support.
>>>> Yeah, I'm aware of that.  It's also not something that can be
>>>> controlled, since gpsd's author doesn't believe in configuration options
>>>> to enable features: every capability is enabled or disabled by
>>>> inspecting the environment at compile-time.
>>>>
>>>> Although ntp does support some explicit enable/disable flags, it too
>>>> fails to provide a way to say "Pay no attention to that PPS header, it
>>>> isn't really there."
>>> Then we need to patch their configure.
>>>
>>>> For this situation I don't think there's a big issue.  The PACKAGECONFIG
>>>> setting ensures that the header will be available if the feature is
>>>> desired.  If it happens to be present but PPS support isn't explicitly
>>>> requested, there's no failure in either build or runtime: it's still
>>>> gated by runtime checks for PPS sources and the option being enabled in
>>>> the Linux kernel.  (There are no runtime libraries that need to be
>>>> installed to use KPPS.)
>>>>
>>>> Is this going to be a problem with the patch being accepted?
>>> Yes
>>>
>>> people can be used to have KPPS support enabled by "accident" e.g.
>>> because they are building ntp with KPPS support and pps-tools is almost
>>> always built before gpsd..and then once it's built in different order and end-user will be
>>> surprised by lost KPPS support from gpsd.
>> The number of people who will use KPPS is incredibly small, and nobody's
>> going to use it unintentionally as it requires on-target configuration.
>> Those who need it, though, have no recourse other than to build ntpd or
>> gpsd outside of OE if patches like these aren't present.
>>
>> I understand the reasoning and agree in theory that absolute determinism
>> would be ideal, but believe hacking the ntp and gpsd configuration
>> infrastructure to explicitly disable use of a detected PPS header would
>> present a bigger risk and long-term cost to stability and
>> maintainability in OE than the possibility you've identified.  So that
>> solution isn't something I'm going to take on.
>>
>> An alternative is to add kpps to the default PACKAGECONFIG, so the
>> required header is normally available.  The cost of the feature's
>> presence in the packages is nearly zero (a slight increase in daemon
>> code size, and an extra check when the process starts.)  Would that be
>> acceptable?
> More acceptable than the undeterministic behavior - you should even add
> it to DEPENDS.

So not make it configurable at all?

OK, I think that would be safe, and would eliminate the existing 
non-determinism.  I'll rework the patches to do that.

Peter

>> If we can't come to an agreement, then the only patch that's really
>> important is the first one which restores the ability to diagnose
>> misconfigured NTP systems.  Please let me know whether I should mark the
>> others as withdrawn in patchwork.
>


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface
  2014-08-28 15:48           ` Peter A. Bigot
@ 2014-08-28 16:25             ` Martin Jansa
  0 siblings, 0 replies; 19+ messages in thread
From: Martin Jansa @ 2014-08-28 16:25 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 4059 bytes --]

On Thu, Aug 28, 2014 at 10:48:59AM -0500, Peter A. Bigot wrote:
> On 08/28/2014 10:23 AM, Peter A. Bigot wrote:
> > On 08/28/2014 09:32 AM, Martin Jansa wrote:
> >> On Thu, Aug 28, 2014 at 08:05:54AM -0500, Peter A. Bigot wrote:
> >>> On 08/28/2014 07:53 AM, Burton, Ross wrote:
> >>>> On 28 August 2014 13:06, Peter A. Bigot <pab@pabigot.com> wrote:
> >>>>> +PACKAGECONFIG ??= ""
> >>>>> +PACKAGECONFIG[kpps] = ",,pps-tools"
> >>>> That's not actually deterministic - if pps-tools is installed but the
> >>>> packageconfig option is disabled then gpsd will still enable the
> >>>> support.
> >>> Yeah, I'm aware of that.  It's also not something that can be
> >>> controlled, since gpsd's author doesn't believe in configuration 
> >>> options
> >>> to enable features: every capability is enabled or disabled by
> >>> inspecting the environment at compile-time.
> >>>
> >>> Although ntp does support some explicit enable/disable flags, it too
> >>> fails to provide a way to say "Pay no attention to that PPS header, it
> >>> isn't really there."
> >> Then we need to patch their configure.
> >>
> >>> For this situation I don't think there's a big issue.  The 
> >>> PACKAGECONFIG
> >>> setting ensures that the header will be available if the feature is
> >>> desired.  If it happens to be present but PPS support isn't explicitly
> >>> requested, there's no failure in either build or runtime: it's still
> >>> gated by runtime checks for PPS sources and the option being enabled in
> >>> the Linux kernel.  (There are no runtime libraries that need to be
> >>> installed to use KPPS.)
> >>>
> >>> Is this going to be a problem with the patch being accepted?
> >> Yes
> >>
> >> people can be used to have KPPS support enabled by "accident" e.g.
> >> because they are building ntp with KPPS support and pps-tools is almost
> >> always built before gpsd..and then once it's built in different order 
> >> and end-user will be
> >> surprised by lost KPPS support from gpsd.
> >
> > The number of people who will use KPPS is incredibly small, and 
> > nobody's going to use it unintentionally as it requires on-target 
> > configuration.  Those who need it, though, have no recourse other than 
> > to build ntpd or gpsd outside of OE if patches like these aren't present.
> >
> > I understand the reasoning and agree in theory that absolute 
> > determinism would be ideal, but believe hacking the ntp and gpsd 
> > configuration infrastructure to explicitly disable use of a detected 
> > PPS header would present a bigger risk and long-term cost to stability 
> > and maintainability in OE than the possibility you've identified.  So 
> > that solution isn't something I'm going to take on.
> >
> > An alternative is to add kpps to the default PACKAGECONFIG, so the 
> > required header is normally available.  The cost of the feature's 
> > presence in the packages is nearly zero (a slight increase in daemon 
> > code size, and an extra check when the process starts.) Would that be 
> > acceptable?
> >
> > If we can't come to an agreement, then the only patch that's really 
> > important is the first one which restores the ability to diagnose 
> > misconfigured NTP systems.  Please let me know whether I should mark 
> > the others as withdrawn in patchwork.
> 
> If it matters, note that withdrawing the patches won't change the status 
> quo: ntpd and gpsd are feature-sensitive to the presence of 
> sys/timepps.h in the build environment, e.g. if pps-tools is added by 
> another layer.  The only difference is that without the patches there's 
> no clue in their recipes that this could happen and no way to provide 
> determinism in the want-kpps situation.

That's why I'm building world builds with many builds (to possibly
find as many issues like this as possible).

If it's in some private layer we cannot do much about it, but we can
prevent this happening in meta-oe itself by careful review :).

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [meta-oe][PATCH v2] gpsd: add deterministic support for KPPS interface
  2014-08-28 12:06 ` [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface Peter A. Bigot
  2014-08-28 12:53   ` Burton, Ross
  2014-08-28 14:29   ` Martin Jansa
@ 2014-08-28 17:42   ` Peter A. Bigot
  2 siblings, 0 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 17:42 UTC (permalink / raw)
  To: openembedded-devel

gpsd enables low-precision PPS (pulse-per-second) support by default,
but only includes the high-precision kernel API capabilities if
sys/timepps.h is also detected.  Under Linux the pps-tools package
installs this header.  Remove the feature non-determinism and increase
gpsd capabilities by adding an explicit dependency.

See: http://www.catb.org/gpsd/gpsd-time-service-howto.html#_enabling_pps

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
V2: replace PACKAGECONFIG with DEPENDS to remove nondeterminism

 meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
index d12c7a8..6d3adc1 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
@@ -2,7 +2,7 @@ SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
 SECTION = "console/network"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
-DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native"
+DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools"
 PROVIDES = "virtual/gpsd"
 
 EXTRANATIVEPATH += "chrpath-native"
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [meta-networking][PATCH v2] ntp: add deterministic support for KPPS interface
  2014-08-28 12:06 ` [meta-oe][PATCH 5/5] ntp: add optional " Peter A. Bigot
@ 2014-08-28 17:43   ` Peter A. Bigot
  2014-09-29  7:50     ` Rongqing Li
  0 siblings, 1 reply; 19+ messages in thread
From: Peter A. Bigot @ 2014-08-28 17:43 UTC (permalink / raw)
  To: openembedded-devel

ntp checks for presence of sys/timepps.h to determine whether the kernel
supports the RFC 2783 KPPS interface.  Under Linux the pps-tools package
installs this header.  Without this feature the ATOM clock driver does
not work, and other drivers like NMEA have reduced precision.  Remove
the feature non-determinism and increase ntpd capabilities by adding an
explicit dependency.

See: http://doc.ntp.org/4.2.6/kernpps.html

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
V2: replace PACKAGECONFIG with DEPENDS to remove nondeterminism

 meta-networking/recipes-support/ntp/ntp.inc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta-networking/recipes-support/ntp/ntp.inc b/meta-networking/recipes-support/ntp/ntp.inc
index 55926e0..f55a39a 100644
--- a/meta-networking/recipes-support/ntp/ntp.inc
+++ b/meta-networking/recipes-support/ntp/ntp.inc
@@ -8,6 +8,8 @@ SECTION = "console/network"
 LICENSE = "NTP"
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fea4b50c33b18c2194b4b1c9ca512670"
 
+DEPENDS = "pps-tools"
+
 INC_PR = "r6"
 
 SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \
-- 
1.8.5.5



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [meta-networking][PATCH v2] ntp: add deterministic support for KPPS interface
  2014-08-28 17:43   ` [meta-networking][PATCH v2] ntp: add deterministic " Peter A. Bigot
@ 2014-09-29  7:50     ` Rongqing Li
  2014-09-29 10:19       ` Peter A. Bigot
  0 siblings, 1 reply; 19+ messages in thread
From: Rongqing Li @ 2014-09-29  7:50 UTC (permalink / raw)
  To: openembedded-devel



On 08/29/2014 01:43 AM, Peter A. Bigot wrote:
> ntp checks for presence of sys/timepps.h to determine whether the kernel
> supports the RFC 2783 KPPS interface.  Under Linux the pps-tools package
> installs this header.  Without this feature the ATOM clock driver does
> not work, and other drivers like NMEA have reduced precision.  Remove
> the feature non-determinism and increase ntpd capabilities by adding an
> explicit dependency.
>
> See: http://doc.ntp.org/4.2.6/kernpps.html
>
> Signed-off-by: Peter A. Bigot <pab@pabigot.com>
> ---
> V2: replace PACKAGECONFIG with DEPENDS to remove nondeterminism
>
>   meta-networking/recipes-support/ntp/ntp.inc | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/meta-networking/recipes-support/ntp/ntp.inc b/meta-networking/recipes-support/ntp/ntp.inc
> index 55926e0..f55a39a 100644
> --- a/meta-networking/recipes-support/ntp/ntp.inc
> +++ b/meta-networking/recipes-support/ntp/ntp.inc
> @@ -8,6 +8,8 @@ SECTION = "console/network"
>   LICENSE = "NTP"
>   LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fea4b50c33b18c2194b4b1c9ca512670"
>
> +DEPENDS = "pps-tools"

Could we add this dependent by PACKAGECONFIG?

-R


> +
>   INC_PR = "r6"
>
>   SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \
>

-- 
Best Reagrds,
Roy | RongQing Li


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [meta-networking][PATCH v2] ntp: add deterministic support for KPPS interface
  2014-09-29  7:50     ` Rongqing Li
@ 2014-09-29 10:19       ` Peter A. Bigot
  0 siblings, 0 replies; 19+ messages in thread
From: Peter A. Bigot @ 2014-09-29 10:19 UTC (permalink / raw)
  To: Rongqing Li, openembedded-devel

On 09/29/2014 02:50 AM, Rongqing Li wrote:
>
>
> On 08/29/2014 01:43 AM, Peter A. Bigot wrote:
>> ntp checks for presence of sys/timepps.h to determine whether the kernel
>> supports the RFC 2783 KPPS interface.  Under Linux the pps-tools package
>> installs this header.  Without this feature the ATOM clock driver does
>> not work, and other drivers like NMEA have reduced precision. Remove
>> the feature non-determinism and increase ntpd capabilities by adding an
>> explicit dependency.
>>
>> See: http://doc.ntp.org/4.2.6/kernpps.html
>>
>> Signed-off-by: Peter A. Bigot <pab@pabigot.com>
>> ---
>> V2: replace PACKAGECONFIG with DEPENDS to remove nondeterminism
>>
>>   meta-networking/recipes-support/ntp/ntp.inc | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/meta-networking/recipes-support/ntp/ntp.inc 
>> b/meta-networking/recipes-support/ntp/ntp.inc
>> index 55926e0..f55a39a 100644
>> --- a/meta-networking/recipes-support/ntp/ntp.inc
>> +++ b/meta-networking/recipes-support/ntp/ntp.inc
>> @@ -8,6 +8,8 @@ SECTION = "console/network"
>>   LICENSE = "NTP"
>>   LIC_FILES_CHKSUM = 
>> "file://COPYRIGHT;md5=fea4b50c33b18c2194b4b1c9ca512670"
>>
>> +DEPENDS = "pps-tools"
>
> Could we add this dependent by PACKAGECONFIG?

That was my original intent, but it was rejected as non-deterministic.  
See discussion at: http://patchwork.openembedded.org/patch/79279/

Peter


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2014-09-29 10:19 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-28 12:06 [meta-oe][PATCH 0/5] ntpd and gpsd updates for high-precision timing Peter A. Bigot
2014-08-28 12:06 ` [meta-oe][PATCH 1/5] ntp: re-enable server debugging and control by PACKAGECONFIG Peter A. Bigot
2014-08-28 12:06 ` [meta-oe][PATCH 2/5] gpsd: update to 3.10 Peter A. Bigot
2014-08-28 12:06 ` [meta-oe][PATCH 3/5] pps-tools: add recipe Peter A. Bigot
2014-08-28 12:06 ` [meta-oe][PATCH 4/5] gpsd: add optional support for KPPS interface Peter A. Bigot
2014-08-28 12:53   ` Burton, Ross
2014-08-28 13:05     ` Peter A. Bigot
2014-08-28 14:32       ` Martin Jansa
2014-08-28 15:23         ` Peter A. Bigot
2014-08-28 15:47           ` Martin Jansa
2014-08-28 15:51             ` Peter A. Bigot
2014-08-28 15:48           ` Peter A. Bigot
2014-08-28 16:25             ` Martin Jansa
2014-08-28 14:29   ` Martin Jansa
2014-08-28 17:42   ` [meta-oe][PATCH v2] gpsd: add deterministic " Peter A. Bigot
2014-08-28 12:06 ` [meta-oe][PATCH 5/5] ntp: add optional " Peter A. Bigot
2014-08-28 17:43   ` [meta-networking][PATCH v2] ntp: add deterministic " Peter A. Bigot
2014-09-29  7:50     ` Rongqing Li
2014-09-29 10:19       ` Peter A. Bigot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.