From d14ac12f8738acac881f20b4d6244cfc22c68ead Mon Sep 17 00:00:00 2001 From: Xin LI Date: Wed, 28 Feb 2018 06:23:12 +0000 Subject: Vendor import of ntp-4.2.8p11. --- scripts/Makefile.in | 1 + scripts/build/Makefile.in | 1 + scripts/build/UpdatePoint | 22 +- scripts/calc_tickadj/Makefile.in | 1 + scripts/calc_tickadj/calc_tickadj.1calc_tickadjman | 6 +- .../calc_tickadj/calc_tickadj.1calc_tickadjmdoc | 4 +- scripts/calc_tickadj/calc_tickadj.html | 2 +- scripts/calc_tickadj/calc_tickadj.man.in | 6 +- scripts/calc_tickadj/calc_tickadj.mdoc.in | 4 +- scripts/calc_tickadj/invoke-calc_tickadj.texi | 2 +- scripts/invoke-plot_summary.texi | 4 +- scripts/invoke-summary.texi | 4 +- scripts/lib/Makefile.in | 1 + scripts/ntp-wait/Makefile.in | 1 + scripts/ntp-wait/invoke-ntp-wait.texi | 4 +- scripts/ntp-wait/ntp-wait-opts | 4 +- scripts/ntp-wait/ntp-wait.1ntp-waitman | 6 +- scripts/ntp-wait/ntp-wait.1ntp-waitmdoc | 4 +- scripts/ntp-wait/ntp-wait.html | 4 +- scripts/ntp-wait/ntp-wait.man.in | 6 +- scripts/ntp-wait/ntp-wait.mdoc.in | 4 +- scripts/ntpsweep/Makefile.in | 1 + scripts/ntpsweep/invoke-ntpsweep.texi | 4 +- scripts/ntpsweep/ntpsweep-opts | 4 +- scripts/ntpsweep/ntpsweep.1ntpsweepman | 6 +- scripts/ntpsweep/ntpsweep.1ntpsweepmdoc | 4 +- scripts/ntpsweep/ntpsweep.html | 4 +- scripts/ntpsweep/ntpsweep.man.in | 6 +- scripts/ntpsweep/ntpsweep.mdoc.in | 4 +- scripts/ntptrace/Makefile.in | 1 + scripts/ntptrace/invoke-ntptrace.texi | 4 +- scripts/ntptrace/ntptrace-opts | 4 +- scripts/ntptrace/ntptrace.1ntptraceman | 6 +- scripts/ntptrace/ntptrace.1ntptracemdoc | 4 +- scripts/ntptrace/ntptrace.html | 4 +- scripts/ntptrace/ntptrace.man.in | 6 +- scripts/ntptrace/ntptrace.mdoc.in | 4 +- scripts/plot_summary-opts | 4 +- scripts/plot_summary.1plot_summaryman | 6 +- scripts/plot_summary.1plot_summarymdoc | 4 +- scripts/plot_summary.html | 4 +- scripts/plot_summary.man.in | 6 +- scripts/plot_summary.mdoc.in | 4 +- scripts/summary-opts | 4 +- scripts/summary.1summaryman | 6 +- scripts/summary.1summarymdoc | 4 +- scripts/summary.html | 4 +- scripts/summary.man.in | 6 +- scripts/summary.mdoc.in | 4 +- scripts/update-leap/Makefile.in | 1 + scripts/update-leap/invoke-update-leap.texi | 127 ++-- scripts/update-leap/update-leap-opts | 4 +- scripts/update-leap/update-leap.1update-leapman | 6 +- scripts/update-leap/update-leap.1update-leapmdoc | 4 +- scripts/update-leap/update-leap.html | 53 +- scripts/update-leap/update-leap.in | 677 +++++++++++---------- scripts/update-leap/update-leap.man.in | 6 +- scripts/update-leap/update-leap.mdoc.in | 4 +- 58 files changed, 573 insertions(+), 522 deletions(-) (limited to 'scripts') diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 4ddf56c9d0f8..f185b9dd7032 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -101,6 +101,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ltsugar.m4 \ $(top_srcdir)/sntp/m4/ltversion.m4 \ $(top_srcdir)/sntp/m4/lt~obsolete.m4 \ + $(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \ $(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \ $(top_srcdir)/sntp/m4/ntp_compiler.m4 \ $(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \ diff --git a/scripts/build/Makefile.in b/scripts/build/Makefile.in index 0afcfa4bdc8e..eb5d28c25f93 100644 --- a/scripts/build/Makefile.in +++ b/scripts/build/Makefile.in @@ -100,6 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ltsugar.m4 \ $(top_srcdir)/sntp/m4/ltversion.m4 \ $(top_srcdir)/sntp/m4/lt~obsolete.m4 \ + $(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \ $(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \ $(top_srcdir)/sntp/m4/ntp_compiler.m4 \ $(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \ diff --git a/scripts/build/UpdatePoint b/scripts/build/UpdatePoint index 61c034983b6c..1b115397a55b 100755 --- a/scripts/build/UpdatePoint +++ b/scripts/build/UpdatePoint @@ -127,6 +127,7 @@ case "$repo" in stable) case "$prerelease" in '') + # echo "Checking <$betapoint::$rcpoint::$point>" case "$betapoint::$rcpoint::$point" in *::*::NEW) # new minor release (no p) @@ -148,6 +149,14 @@ case "$repo" in # bp=1 # bbp=0 ;; + ::[Gg][Oo]::*) + # echo "Good - betapoint is empty. Look in $0 and figure out what's going on here." + crcp=z + ;; + *::[Gg][Oo]::*) + echo "betapoint is NOT empty. Look in $0 and figure out what's going on here." + test=1 + ;; *) echo "betapoint is <$betapoint>, rcpoint is <$rcpoint>" echo "betapoint must be 0 and rcpoint must be empty to start the" echo "beta cycle." @@ -265,7 +274,18 @@ case "$crcp::$rcpoint" in ;; z::*) newrcpoint= - newbetapoint=0 + case "$repo" in + dev) + newbetapoint=0 + ;; + stable) + newbetapoint= + ;; + *) + echo "crcp::rcpoint - bogus repo <$repo>" + exit 1 + ;; + esac ;; *) echo "Unexpected value for 'crcp::rcpoint' <$crcp::$rcpoint>!" exit 1 diff --git a/scripts/calc_tickadj/Makefile.in b/scripts/calc_tickadj/Makefile.in index 1b560bb9fabe..cd49b6898609 100644 --- a/scripts/calc_tickadj/Makefile.in +++ b/scripts/calc_tickadj/Makefile.in @@ -102,6 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ltsugar.m4 \ $(top_srcdir)/sntp/m4/ltversion.m4 \ $(top_srcdir)/sntp/m4/lt~obsolete.m4 \ + $(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \ $(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \ $(top_srcdir)/sntp/m4/ntp_compiler.m4 \ $(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \ diff --git a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman index d4cef9e8f302..33c6a436406b 100644 --- a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman +++ b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH calc_tickadj 1calc_tickadjman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands" +.TH calc_tickadj 1calc_tickadjman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-bsaa0i/ag-osaiZi) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-mfaiQP/ag-zfaqPP) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:39:52 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:49:40 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc index 7ddf50764dba..075524066715 100644 --- a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc +++ b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc @@ -1,9 +1,9 @@ -.Dd March 21 2017 +.Dd February 27 2018 .Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:39:54 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:49:43 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/scripts/calc_tickadj/calc_tickadj.html b/scripts/calc_tickadj/calc_tickadj.html index 82286ea20345..930d90ce8eb0 100644 --- a/scripts/calc_tickadj/calc_tickadj.html +++ b/scripts/calc_tickadj/calc_tickadj.html @@ -31,7 +31,7 @@ Up: (dir)

calc_tickadj User's Manual

This document describes the use of the NTP Project's calc_tickadj program. -This document applies to version 4.2.8p10 of calc_tickadj. +This document applies to version 4.2.8p11 of calc_tickadj.

Short Contents

diff --git a/scripts/calc_tickadj/calc_tickadj.man.in b/scripts/calc_tickadj/calc_tickadj.man.in index d4cef9e8f302..33c6a436406b 100644 --- a/scripts/calc_tickadj/calc_tickadj.man.in +++ b/scripts/calc_tickadj/calc_tickadj.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH calc_tickadj 1calc_tickadjman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands" +.TH calc_tickadj 1calc_tickadjman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-bsaa0i/ag-osaiZi) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-mfaiQP/ag-zfaqPP) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:39:52 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:49:40 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/scripts/calc_tickadj/calc_tickadj.mdoc.in b/scripts/calc_tickadj/calc_tickadj.mdoc.in index 7ddf50764dba..075524066715 100644 --- a/scripts/calc_tickadj/calc_tickadj.mdoc.in +++ b/scripts/calc_tickadj/calc_tickadj.mdoc.in @@ -1,9 +1,9 @@ -.Dd March 21 2017 +.Dd February 27 2018 .Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:39:54 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:49:43 AM by AutoGen 5.18.5 .\" From the definitions calc_tickadj-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/scripts/calc_tickadj/invoke-calc_tickadj.texi b/scripts/calc_tickadj/invoke-calc_tickadj.texi index 74898f8f426d..9c4b7ed2f500 100644 --- a/scripts/calc_tickadj/invoke-calc_tickadj.texi +++ b/scripts/calc_tickadj/invoke-calc_tickadj.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-calc_tickadj.texi) # -# It has been AutoGen-ed March 21, 2017 at 10:39:57 AM by AutoGen 5.18.5 +# It has been AutoGen-ed February 27, 2018 at 10:49:45 AM by AutoGen 5.18.5 # From the definitions calc_tickadj-opts.def # and the template file agtexi-cmd.tpl @end ignore diff --git a/scripts/invoke-plot_summary.texi b/scripts/invoke-plot_summary.texi index aea5cd45b85e..e2c7d958a3e6 100644 --- a/scripts/invoke-plot_summary.texi +++ b/scripts/invoke-plot_summary.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-plot_summary.texi) # -# It has been AutoGen-ed March 21, 2017 at 10:40:40 AM by AutoGen 5.18.5 +# It has been AutoGen-ed February 27, 2018 at 04:55:58 PM by AutoGen 5.18.5 # From the definitions plot_summary-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -41,7 +41,7 @@ with a status code of 0. @exampleindent 0 @example -plot_summary - plot statistics generated by summary script - Ver. 4.2.8p10 +plot_summary - plot statistics generated by summary script - Ver. 4.2.8p11 USAGE: plot_summary [ - [] | --[@{=| @}] ]... --directory=str Where the summary files are diff --git a/scripts/invoke-summary.texi b/scripts/invoke-summary.texi index ab56bea72dd1..2a6d5a4fbbb6 100644 --- a/scripts/invoke-summary.texi +++ b/scripts/invoke-summary.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-summary.texi) # -# It has been AutoGen-ed March 21, 2017 at 10:40:46 AM by AutoGen 5.18.5 +# It has been AutoGen-ed February 27, 2018 at 04:56:04 PM by AutoGen 5.18.5 # From the definitions summary-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -42,7 +42,7 @@ with a status code of 0. @exampleindent 0 @example -summary - compute various stastics from NTP stat files - Ver. 4.2.8p10 +summary - compute various stastics from NTP stat files - Ver. 4.2.8p11 USAGE: summary [ - [] | --[@{=| @}] ]... --directory=str Directory containing stat files diff --git a/scripts/lib/Makefile.in b/scripts/lib/Makefile.in index 08f59a681438..3cafdf815b54 100644 --- a/scripts/lib/Makefile.in +++ b/scripts/lib/Makefile.in @@ -100,6 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ltsugar.m4 \ $(top_srcdir)/sntp/m4/ltversion.m4 \ $(top_srcdir)/sntp/m4/lt~obsolete.m4 \ + $(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \ $(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \ $(top_srcdir)/sntp/m4/ntp_compiler.m4 \ $(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \ diff --git a/scripts/ntp-wait/Makefile.in b/scripts/ntp-wait/Makefile.in index 1e60256d9818..9df58c5f4f4a 100644 --- a/scripts/ntp-wait/Makefile.in +++ b/scripts/ntp-wait/Makefile.in @@ -101,6 +101,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \ $(top_srcdir)/sntp/m4/ltsugar.m4 \ $(top_srcdir)/sntp/m4/ltversion.m4 \ $(top_srcdir)/sntp/m4/lt~obsolete.m4 \ + $(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \ $(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \ $(top_srcdir)/sntp/m4/ntp_compiler.m4 \ $(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \ diff --git a/scripts/ntp-wait/invoke-ntp-wait.texi b/scripts/ntp-wait/invoke-ntp-wait.texi index f7e2751bc067..786f3b7e26cc 100644 --- a/scripts/ntp-wait/invoke-ntp-wait.texi +++ b/scripts/ntp-wait/invoke-ntp-wait.texi @@ -6,7 +6,7 @@ # # EDIT THIS FILE WITH CAUTION (invoke-ntp-wait.texi) # -# It has been AutoGen-ed March 21, 2017 at 10:40:05 AM by AutoGen 5.18.5 +# It has been AutoGen-ed February 27, 2018 at 10:49:53 AM by AutoGen 5.18.5 # From the definitions ntp-wait-opts.def # and the template file agtexi-cmd.tpl @end ignore @@ -61,7 +61,7 @@ with a status code of 0. @exampleindent 0 @example -ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p10 +ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p11 USAGE: ntp-wait [ - [] | --[@{=| @}] ]... -n, --tries=num Number of times to check ntpd diff --git a/scripts/ntp-wait/ntp-wait-opts b/scripts/ntp-wait/ntp-wait-opts index fbb996b552e0..4e6c4a01bbf9 100644 --- a/scripts/ntp-wait/ntp-wait-opts +++ b/scripts/ntp-wait/ntp-wait-opts @@ -1,6 +1,6 @@ # EDIT THIS FILE WITH CAUTION (ntp-wait-opts) # -# It has been AutoGen-ed March 21, 2017 at 10:40:00 AM by AutoGen 5.18.5 +# It has been AutoGen-ed February 27, 2018 at 10:49:48 AM by AutoGen 5.18.5 # From the definitions ntp-wait-opts.def # and the template file perlopt @@ -40,7 +40,7 @@ sub processOptions { 'help|?', 'more-help')); $usage = <<'USAGE'; -ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p10 +ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p11 USAGE: ntp-wait [ - [] | --[{=| }] ]... -n, --tries=num Number of times to check ntpd diff --git a/scripts/ntp-wait/ntp-wait.1ntp-waitman b/scripts/ntp-wait/ntp-wait.1ntp-waitman index afe765e564cf..43158be1cd74 100644 --- a/scripts/ntp-wait/ntp-wait.1ntp-waitman +++ b/scripts/ntp-wait/ntp-wait.1ntp-waitman @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH ntp-wait 1ntp-waitman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands" +.TH ntp-wait 1ntp-waitman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-xOaq.j/ag-KOay9j) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-tuay0Q/ag-GuaGZQ) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:40:02 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:49:50 AM by AutoGen 5.18.5 .\" From the definitions ntp-wait-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc b/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc index 4a4e70e2df78..bd33fc9fa6fb 100644 --- a/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc +++ b/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc @@ -1,9 +1,9 @@ -.Dd March 21 2017 +.Dd February 27 2018 .Dt NTP_WAIT 1ntp-waitmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:40:07 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:49:55 AM by AutoGen 5.18.5 .\" From the definitions ntp-wait-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME diff --git a/scripts/ntp-wait/ntp-wait.html b/scripts/ntp-wait/ntp-wait.html index 40da9a5afca0..ef8e53e88b71 100644 --- a/scripts/ntp-wait/ntp-wait.html +++ b/scripts/ntp-wait/ntp-wait.html @@ -39,7 +39,7 @@ until the system's time has stabilized and synchronized, and only then start any applicaitons (like database servers) that require accurate and stable time. -

This document applies to version 4.2.8p10 of ntp-wait. +

This document applies to version 4.2.8p11 of ntp-wait.

Short Contents

@@ -114,7 +114,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to more. Both will exit with a status code of 0. -
ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p10
+
ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p11
 USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
 
     -n, --tries=num              Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait.man.in b/scripts/ntp-wait/ntp-wait.man.in
index 29abed7a8221..c113287fe0b6 100644
--- a/scripts/ntp-wait/ntp-wait.man.in
+++ b/scripts/ntp-wait/ntp-wait.man.in
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntp-wait @NTP_WAIT_MS@ "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH ntp-wait @NTP_WAIT_MS@ "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-xOaq.j/ag-KOay9j)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-tuay0Q/ag-GuaGZQ)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:02 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 10:49:50 AM by AutoGen 5.18.5
 .\" From the definitions ntp-wait-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/ntp-wait/ntp-wait.mdoc.in b/scripts/ntp-wait/ntp-wait.mdoc.in
index db53d4449ea8..c7927156703a 100644
--- a/scripts/ntp-wait/ntp-wait.mdoc.in
+++ b/scripts/ntp-wait/ntp-wait.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt NTP_WAIT @NTP_WAIT_MS@ User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntp-wait-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:07 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 10:49:55 AM by AutoGen 5.18.5
 .\"  From the definitions    ntp-wait-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/ntpsweep/Makefile.in b/scripts/ntpsweep/Makefile.in
index 6357f6682e29..45c56c098ec6 100644
--- a/scripts/ntpsweep/Makefile.in
+++ b/scripts/ntpsweep/Makefile.in
@@ -101,6 +101,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \
 	$(top_srcdir)/sntp/m4/ltsugar.m4 \
 	$(top_srcdir)/sntp/m4/ltversion.m4 \
 	$(top_srcdir)/sntp/m4/lt~obsolete.m4 \
+	$(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \
 	$(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \
 	$(top_srcdir)/sntp/m4/ntp_compiler.m4 \
 	$(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \
diff --git a/scripts/ntpsweep/invoke-ntpsweep.texi b/scripts/ntpsweep/invoke-ntpsweep.texi
index d926bf6cb999..17a7b6e7b8d5 100644
--- a/scripts/ntpsweep/invoke-ntpsweep.texi
+++ b/scripts/ntpsweep/invoke-ntpsweep.texi
@@ -6,7 +6,7 @@
 #
 # EDIT THIS FILE WITH CAUTION  (invoke-ntpsweep.texi)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:11 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 10:49:59 AM by AutoGen 5.18.5
 # From the definitions    ntpsweep-opts.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -45,7 +45,7 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p10
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p11
 USAGE: ntpsweep [ - [] | --[@{=| @}] ]... [hostfile]
 
     -l, --host-list=str          Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep-opts b/scripts/ntpsweep/ntpsweep-opts
index 46a566be92c1..06dc7ce4f74b 100644
--- a/scripts/ntpsweep/ntpsweep-opts
+++ b/scripts/ntpsweep/ntpsweep-opts
@@ -1,6 +1,6 @@
 # EDIT THIS FILE WITH CAUTION  (ntpsweep-opts)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:09 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 10:49:57 AM by AutoGen 5.18.5
 # From the definitions    ntpsweep-opts.def
 # and the template file   perlopt
 
@@ -43,7 +43,7 @@ sub processOptions {
         'help|?', 'more-help'));
 
     $usage = <<'USAGE';
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p10
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p11
 USAGE: ntpsweep [ - [] | --[{=| }] ]... [hostfile]
 
     -l, --host-list=str          Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep.1ntpsweepman b/scripts/ntpsweep/ntpsweep.1ntpsweepman
index 7aa27dda28f5..34a48a8bd226 100644
--- a/scripts/ntpsweep/ntpsweep.1ntpsweepman
+++ b/scripts/ntpsweep/ntpsweep.1ntpsweepman
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntpsweep 1ntpsweepman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH ntpsweep 1ntpsweepman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-cxaykl/ag-pxaGjl)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-cfaGaS/ag-pfaO_R)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:13 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 10:50:01 AM by AutoGen 5.18.5
 .\" From the definitions ntpsweep-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc b/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
index e0b10088a488..d3b142f48e8a 100644
--- a/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
+++ b/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt NTPSWEEP 1ntpsweepmdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntpsweep-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:16 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 10:50:04 AM by AutoGen 5.18.5
 .\"  From the definitions    ntpsweep-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/ntpsweep/ntpsweep.html b/scripts/ntpsweep/ntpsweep.html
index 33b6d1591a1c..b44457bc5c6c 100644
--- a/scripts/ntpsweep/ntpsweep.html
+++ b/scripts/ntpsweep/ntpsweep.html
@@ -30,7 +30,7 @@ Up: (dir)
 
   

This document describes the use of the NTP Project's ntpsweep program. -

This document applies to version 4.2.8p10 of ntpsweep. +

This document applies to version 4.2.8p11 of ntpsweep.

Short Contents

@@ -90,7 +90,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to more. Both will exit with a status code of 0. -
ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p10
+
ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p11
 USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile]
 
     -l, --host-list=str          Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep.man.in b/scripts/ntpsweep/ntpsweep.man.in
index 7aa27dda28f5..34a48a8bd226 100644
--- a/scripts/ntpsweep/ntpsweep.man.in
+++ b/scripts/ntpsweep/ntpsweep.man.in
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntpsweep 1ntpsweepman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH ntpsweep 1ntpsweepman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-cxaykl/ag-pxaGjl)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-cfaGaS/ag-pfaO_R)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:13 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 10:50:01 AM by AutoGen 5.18.5
 .\" From the definitions ntpsweep-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/ntpsweep/ntpsweep.mdoc.in b/scripts/ntpsweep/ntpsweep.mdoc.in
index e0b10088a488..d3b142f48e8a 100644
--- a/scripts/ntpsweep/ntpsweep.mdoc.in
+++ b/scripts/ntpsweep/ntpsweep.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt NTPSWEEP 1ntpsweepmdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntpsweep-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:16 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 10:50:04 AM by AutoGen 5.18.5
 .\"  From the definitions    ntpsweep-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/ntptrace/Makefile.in b/scripts/ntptrace/Makefile.in
index 05fd1319b456..7ce26143cf70 100644
--- a/scripts/ntptrace/Makefile.in
+++ b/scripts/ntptrace/Makefile.in
@@ -101,6 +101,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \
 	$(top_srcdir)/sntp/m4/ltsugar.m4 \
 	$(top_srcdir)/sntp/m4/ltversion.m4 \
 	$(top_srcdir)/sntp/m4/lt~obsolete.m4 \
+	$(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \
 	$(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \
 	$(top_srcdir)/sntp/m4/ntp_compiler.m4 \
 	$(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \
diff --git a/scripts/ntptrace/invoke-ntptrace.texi b/scripts/ntptrace/invoke-ntptrace.texi
index 01f84be699bb..f10f347f0fb1 100644
--- a/scripts/ntptrace/invoke-ntptrace.texi
+++ b/scripts/ntptrace/invoke-ntptrace.texi
@@ -6,7 +6,7 @@
 #
 # EDIT THIS FILE WITH CAUTION  (invoke-ntptrace.texi)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:23 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 10:50:11 AM by AutoGen 5.18.5
 # From the definitions    ntptrace-opts.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -62,7 +62,7 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8p10
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p11
 USAGE: ntptrace [ - [] | --[@{=| @}] ]... [host]
 
     -n, --numeric                Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace-opts b/scripts/ntptrace/ntptrace-opts
index dd37d7b80a46..17f513ab2749 100644
--- a/scripts/ntptrace/ntptrace-opts
+++ b/scripts/ntptrace/ntptrace-opts
@@ -1,6 +1,6 @@
 # EDIT THIS FILE WITH CAUTION  (ntptrace-opts)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:18 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 10:50:06 AM by AutoGen 5.18.5
 # From the definitions    ntptrace-opts.def
 # and the template file   perlopt
 
@@ -40,7 +40,7 @@ sub processOptions {
         'help|?', 'more-help'));
 
     $usage = <<'USAGE';
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8p10
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p11
 USAGE: ntptrace [ - [] | --[{=| }] ]... [host]
 
     -n, --numeric                Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace.1ntptraceman b/scripts/ntptrace/ntptrace.1ntptraceman
index 0cab9602a7e0..2c4e1b0e33bb 100644
--- a/scripts/ntptrace/ntptrace.1ntptraceman
+++ b/scripts/ntptrace/ntptrace.1ntptraceman
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntptrace 1ntptraceman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH ntptrace 1ntptraceman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-y.a4mm/ag-W.aamm)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-wXa4cT/ag-JXaacT)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:19 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 10:50:08 AM by AutoGen 5.18.5
 .\" From the definitions ntptrace-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/ntptrace/ntptrace.1ntptracemdoc b/scripts/ntptrace/ntptrace.1ntptracemdoc
index 9f1776620338..f4c355c30038 100644
--- a/scripts/ntptrace/ntptrace.1ntptracemdoc
+++ b/scripts/ntptrace/ntptrace.1ntptracemdoc
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt NTPTRACE 1ntptracemdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntptrace-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:25 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 10:50:13 AM by AutoGen 5.18.5
 .\"  From the definitions    ntptrace-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/ntptrace/ntptrace.html b/scripts/ntptrace/ntptrace.html
index e7555955a4c2..53a16e9e0777 100644
--- a/scripts/ntptrace/ntptrace.html
+++ b/scripts/ntptrace/ntptrace.html
@@ -31,7 +31,7 @@ Up: (dir)
 

Simple Network Time Protocol User Manual

This document describes the use of the NTP Project's ntptrace program. -This document applies to version 4.2.8p10 of ntptrace. +This document applies to version 4.2.8p11 of ntptrace.

Short Contents

@@ -107,7 +107,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to more. Both will exit with a status code of 0. -
ntptrace - Trace peers of an NTP server - Ver. 4.2.8p10
+
ntptrace - Trace peers of an NTP server - Ver. 4.2.8p11
 USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host]
 
     -n, --numeric                Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace.man.in b/scripts/ntptrace/ntptrace.man.in
index 50519ead2467..756e60e1a689 100644
--- a/scripts/ntptrace/ntptrace.man.in
+++ b/scripts/ntptrace/ntptrace.man.in
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntptrace @NTPTRACE_MS@ "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH ntptrace @NTPTRACE_MS@ "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-y.a4mm/ag-W.aamm)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-wXa4cT/ag-JXaacT)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:19 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 10:50:08 AM by AutoGen 5.18.5
 .\" From the definitions ntptrace-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/ntptrace/ntptrace.mdoc.in b/scripts/ntptrace/ntptrace.mdoc.in
index 7736e8bdf35a..7a50cafafa83 100644
--- a/scripts/ntptrace/ntptrace.mdoc.in
+++ b/scripts/ntptrace/ntptrace.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt NTPTRACE @NTPTRACE_MS@ User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntptrace-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:25 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 10:50:13 AM by AutoGen 5.18.5
 .\"  From the definitions    ntptrace-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/plot_summary-opts b/scripts/plot_summary-opts
index 26cafd4ed655..462150bb8406 100644
--- a/scripts/plot_summary-opts
+++ b/scripts/plot_summary-opts
@@ -1,6 +1,6 @@
 # EDIT THIS FILE WITH CAUTION  (plot_summary-opts)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:37 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 04:55:55 PM by AutoGen 5.18.5
 # From the definitions    plot_summary-opts.def
 # and the template file   perlopt
 
@@ -46,7 +46,7 @@ sub processOptions {
         'help|?', 'more-help'));
 
     $usage = <<'USAGE';
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8p10
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p11
 USAGE: plot_summary [ - [] | --[{=| }] ]... 
 
         --directory=str          Where the summary files are
diff --git a/scripts/plot_summary.1plot_summaryman b/scripts/plot_summary.1plot_summaryman
index b13c3cf0375c..f3a2a8ea1613 100644
--- a/scripts/plot_summary.1plot_summaryman
+++ b/scripts/plot_summary.1plot_summaryman
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH plot_summary 1plot_summaryman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH plot_summary 1plot_summaryman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-BEaaJo/ag-OEaiIo)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-NpayvG/ag-0paGuG)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:42 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 04:56:00 PM by AutoGen 5.18.5
 .\" From the definitions plot_summary-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/plot_summary.1plot_summarymdoc b/scripts/plot_summary.1plot_summarymdoc
index d7647a70694b..f2ff40f4c69c 100644
--- a/scripts/plot_summary.1plot_summarymdoc
+++ b/scripts/plot_summary.1plot_summarymdoc
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (plot_summary-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:44 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 04:56:02 PM by AutoGen 5.18.5
 .\"  From the definitions    plot_summary-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/plot_summary.html b/scripts/plot_summary.html
index 72f2273f2376..6a2fac5ee85c 100644
--- a/scripts/plot_summary.html
+++ b/scripts/plot_summary.html
@@ -31,7 +31,7 @@ Up: (dir)
 

Plot_summary User Manual

This document describes the use of the NTP Project's plot_summary program. -This document applies to version 4.2.8p10 of plot_summary. +This document applies to version 4.2.8p11 of plot_summary.

Short Contents

@@ -89,7 +89,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to more. Both will exit with a status code of 0. -
plot_summary - plot statistics generated by summary script - Ver. 4.2.8p10
+
plot_summary - plot statistics generated by summary script - Ver. 4.2.8p11
 USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
 
         --directory=str          Where the summary files are
diff --git a/scripts/plot_summary.man.in b/scripts/plot_summary.man.in
index b13c3cf0375c..f3a2a8ea1613 100644
--- a/scripts/plot_summary.man.in
+++ b/scripts/plot_summary.man.in
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH plot_summary 1plot_summaryman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH plot_summary 1plot_summaryman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-BEaaJo/ag-OEaiIo)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-NpayvG/ag-0paGuG)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:42 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 04:56:00 PM by AutoGen 5.18.5
 .\" From the definitions plot_summary-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/plot_summary.mdoc.in b/scripts/plot_summary.mdoc.in
index d7647a70694b..f2ff40f4c69c 100644
--- a/scripts/plot_summary.mdoc.in
+++ b/scripts/plot_summary.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (plot_summary-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:44 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 04:56:02 PM by AutoGen 5.18.5
 .\"  From the definitions    plot_summary-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/summary-opts b/scripts/summary-opts
index 336d2e1319e1..08effab71e53 100644
--- a/scripts/summary-opts
+++ b/scripts/summary-opts
@@ -1,6 +1,6 @@
 # EDIT THIS FILE WITH CAUTION  (summary-opts)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:38 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 04:55:57 PM by AutoGen 5.18.5
 # From the definitions    summary-opts.def
 # and the template file   perlopt
 
@@ -44,7 +44,7 @@ sub processOptions {
         'help|?', 'more-help'));
 
     $usage = <<'USAGE';
-summary - compute various stastics from NTP stat files - Ver. 4.2.8p10
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p11
 USAGE: summary [ - [] | --[{=| }] ]... 
 
         --directory=str          Directory containing stat files
diff --git a/scripts/summary.1summaryman b/scripts/summary.1summaryman
index c1cdeb5a955a..d4011fb9750e 100644
--- a/scripts/summary.1summaryman
+++ b/scripts/summary.1summaryman
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH summary 1summaryman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH summary 1summaryman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-41aOWo/ag-h2aWVo)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-AMaaJG/ag-NMaiIG)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:48 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 04:56:06 PM by AutoGen 5.18.5
 .\" From the definitions summary-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/summary.1summarymdoc b/scripts/summary.1summarymdoc
index b9a95d9ea14e..6c8eee7f7cc7 100644
--- a/scripts/summary.1summarymdoc
+++ b/scripts/summary.1summarymdoc
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt SUMMARY 1summarymdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (summary-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:49 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 04:56:08 PM by AutoGen 5.18.5
 .\"  From the definitions    summary-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/summary.html b/scripts/summary.html
index ebf5acb1756b..b6c226c04c65 100644
--- a/scripts/summary.html
+++ b/scripts/summary.html
@@ -31,7 +31,7 @@ Up: (dir)
 

Summary User Manual

This document describes the use of the NTP Project's summary program. -This document applies to version 4.2.8p10 of summary. +This document applies to version 4.2.8p11 of summary.

Short Contents

@@ -88,7 +88,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to more. Both will exit with a status code of 0. -
summary - compute various stastics from NTP stat files - Ver. 4.2.8p10
+
summary - compute various stastics from NTP stat files - Ver. 4.2.8p11
 USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
 
         --directory=str          Directory containing stat files
diff --git a/scripts/summary.man.in b/scripts/summary.man.in
index c1cdeb5a955a..d4011fb9750e 100644
--- a/scripts/summary.man.in
+++ b/scripts/summary.man.in
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH summary 1summaryman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH summary 1summaryman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-41aOWo/ag-h2aWVo)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-AMaaJG/ag-NMaiIG)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:48 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 04:56:06 PM by AutoGen 5.18.5
 .\" From the definitions summary-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/summary.mdoc.in b/scripts/summary.mdoc.in
index b9a95d9ea14e..6c8eee7f7cc7 100644
--- a/scripts/summary.mdoc.in
+++ b/scripts/summary.mdoc.in
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt SUMMARY 1summarymdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (summary-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:49 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 04:56:08 PM by AutoGen 5.18.5
 .\"  From the definitions    summary-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/update-leap/Makefile.in b/scripts/update-leap/Makefile.in
index b2d4eef799ce..3a42d80553bf 100644
--- a/scripts/update-leap/Makefile.in
+++ b/scripts/update-leap/Makefile.in
@@ -101,6 +101,7 @@ am__aclocal_m4_deps = $(top_srcdir)/sntp/libopts/m4/libopts.m4 \
 	$(top_srcdir)/sntp/m4/ltsugar.m4 \
 	$(top_srcdir)/sntp/m4/ltversion.m4 \
 	$(top_srcdir)/sntp/m4/lt~obsolete.m4 \
+	$(top_srcdir)/sntp/m4/ntp_af_unspec.m4 \
 	$(top_srcdir)/sntp/m4/ntp_cacheversion.m4 \
 	$(top_srcdir)/sntp/m4/ntp_compiler.m4 \
 	$(top_srcdir)/sntp/m4/ntp_crosscompile.m4 \
diff --git a/scripts/update-leap/invoke-update-leap.texi b/scripts/update-leap/invoke-update-leap.texi
index 6e76564f7b4c..002193a18e4c 100644
--- a/scripts/update-leap/invoke-update-leap.texi
+++ b/scripts/update-leap/invoke-update-leap.texi
@@ -6,7 +6,7 @@
 #
 # EDIT THIS FILE WITH CAUTION  (invoke-update-leap.texi)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:30 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 04:55:50 PM by AutoGen 5.18.5
 # From the definitions    update-leap-opts.def
 # and the template file   agtexi-cmd.tpl
 @end ignore
@@ -70,56 +70,81 @@ with a status code of 0.
 
 @exampleindent 0
 @example
-    update-leap
-        Usage: $0 [options] [leapfile]
-
-        Verifies and if necessary, updates leap-second definition file
-
-        All arguments are optional: Default (or current value) shown: -s
-        Specify the URL of the master copy to download $LEAPSRC -d Specify
-        the filename on the local system $LEAPFILE -e Specify how long (in
-        days) before expiration the file is to be refreshed. Note that
-        larger values imply more frequent refreshes. "$PREFETCH" -f Specify
-        location of ntp.conf (used to make sure leapfile directive is
-        present and to default leapfile) $NTPCONF -F Force update even if
-        current file is OK and not close to expiring. -r Specify number of
-        times to retry on get failure $MAXTRIES -i Specify number of minutes
-        between retries $INTERVAL -l Use syslog for output (Implied if
-        CRONJOB is set) -L Don't use syslog for output -P Specify the syslog
-        facility for logging $LOGFAC -t Name of temporary file used in
-        validation $TMPFILE -q Only report errors to stdout -v Verbose
-        output
-
-        The following options are not (yet) implemented in the perl version:
-        -4 Use only IPv4 -6 Use only IPv6 -c Command to restart NTP after
-        installing a new file  - ntpd checks file daily -p 4|6 Prefer
-        IPv4 or IPv6 (as specified) addresses, but use either -z Specify
-        path for utilities $PATHLIST -Z Only use system path
-
-        $0 will validate the file currently on the local system
-
-        Ordinarily, the file is found using the "leapfile" directive in
-        $NTPCONF. However, an alternate location can be specified on the
-        command line.
-
-        If the file does not exist, is not valid, has expired, or is
-        expiring soon, a new copy will be downloaded. If the new copy
-        validates, it is installed and NTP is (optionally) restarted.
-
-        If the current file is acceptable, no download or restart occurs.
-
-        -c can also be used to invoke another script to perform
-        administrative functions, e.g. to copy the file to other local
-        systems.
-
-        This can be run as a cron job. As the file is rarely updated, and
-        leap seconds are announced at least one month in advance (usually
-        longer), it need not be run more frequently than about once every
-        three weeks.
-
-        For cron-friendly behavior, define CRONJOB=1 in the crontab.
-
-        Version $VERSION
+
+Usage: update-leap [options]
+
+Verifies and if necessary, updates leap-second definition file
+
+All arguments are optional:  Default (or current value) shown:
+    -C    Absolute path to CA Cert (see SSL/TLS Considerations)
+    -D    Path to a CAdir (see SSL/TLS Considerations)
+    -e    Specify how long (in days) before expiration the file is to be
+              refreshed.  Note that larger values imply more frequent refreshes.
+          60
+    -F    Force update even if current file is OK and not close to expiring.
+    -f    Absolute path ntp.conf file (default /etc/ntp.conf)
+          /etc/ntp.conf
+    -h    show help
+    -i    Specify number of minutes between retries
+          10
+    -L    Absolute path to leapfile on the local system
+          (overrides value in ntp.conf)
+    -l    Specify the syslog(3) facility for logging
+          LOG_USER
+    -q    Only report errors (cannot be used with -v)
+    -r    Specify number of attempts to retrieve file
+          6
+    -s    Send output to syslog(3) - implied if STDOUT has no tty or redirected
+    -t    Send output to terminal - implied if STDOUT attached to terminal
+    -u    Specify the URL of the master copy to download
+          https://www.ietf.org/timezones/data/leap-seconds.list
+    -v    Verbose - show debug messages (cannot be used with -q)
+
+The following options are not (yet) implemented in the perl version:
+    -4    Use only IPv4
+    -6    Use only IPv6
+    -c    Command to restart NTP after installing a new file
+           - ntpd checks file daily
+    -p 4|6
+          Prefer IPv4 or IPv6 (as specified) addresses, but use either
+
+update-leap will validate the file currently on the local system.
+
+Ordinarily, the leapfile is found using the 'leapfile' directive in
+/etc/ntp.conf.  However, an alternate location can be specified on the
+command line with the -L flag.
+
+If the leapfile does not exist, is not valid, has expired, or is
+expiring soon, a new copy will be downloaded.  If the new copy is
+valid, it is installed.
+
+If the current file is acceptable, no download or restart occurs.
+
+This can be run as a cron job.  As the file is rarely updated, and
+leap seconds are announced at least one month in advance (usually
+longer), it need not be run more frequently than about once every
+three weeks.
+
+SSL/TLS Considerations
+-----------------------
+The perl modules can usually locate the CA certificate used to verify
+the peer's identity.
+
+On BSDs, the default is typically the file /etc/ssl/certs.pem.  On
+Linux, the location is typically a path to a CAdir - a directory of
+symlinks named according to a hash of the certificates' subject names.
+
+The -C or -D options are available to pass in a location if no CA cert
+is found in the default location.
+
+External Dependencies
+---------------------
+The following perl modules are required:
+HTTP::Tiny         - version >= 0.056
+IO::Socket::SSL - version >= 1.56
+NET::SSLeay         - version >= 1.49
+
+Version: 1.004
 @end example
 @exampleindent 4
 
diff --git a/scripts/update-leap/update-leap-opts b/scripts/update-leap/update-leap-opts
index 6e7d957a694e..ef461c3e4570 100644
--- a/scripts/update-leap/update-leap-opts
+++ b/scripts/update-leap/update-leap-opts
@@ -1,6 +1,6 @@
 # EDIT THIS FILE WITH CAUTION  (update-leap-opts)
 #
-# It has been AutoGen-ed  March 21, 2017 at 10:40:36 AM by AutoGen 5.18.5
+# It has been AutoGen-ed  February 27, 2018 at 04:32:15 PM by AutoGen 5.18.5
 # From the definitions    update-leap-opts.def
 # and the template file   perlopt
 
@@ -46,7 +46,7 @@ sub processOptions {
         'help|?', 'more-help'));
 
     $usage = <<'USAGE';
-update-leap - leap-seconds file manager/updater - Ver. 4.2.8p10
+update-leap - leap-seconds file manager/updater - Ver. 4.2.8p11
 USAGE: update-leap [ - [] | --[{=| }] ]... 
 
     -s, --source-url=str         The URL of the master copy of the leapseconds file
diff --git a/scripts/update-leap/update-leap.1update-leapman b/scripts/update-leap/update-leap.1update-leapman
index bd628712ac46..380774a8bf33 100644
--- a/scripts/update-leap/update-leap.1update-leapman
+++ b/scripts/update-leap/update-leap.1update-leapman
@@ -10,11 +10,11 @@
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH update-leap 1update-leapman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands"
+.TH update-leap 1update-leapman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-6XaW6m/ag-hYa45m)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-cKaOWT/ag-pKaWVT)
 .\"
-.\" It has been AutoGen-ed March 21, 2017 at 10:40:27 AM by AutoGen 5.18.5
+.\" It has been AutoGen-ed February 27, 2018 at 10:50:15 AM by AutoGen 5.18.5
 .\" From the definitions update-leap-opts.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
diff --git a/scripts/update-leap/update-leap.1update-leapmdoc b/scripts/update-leap/update-leap.1update-leapmdoc
index 2bb1d59e29cd..1af0cd3b829d 100644
--- a/scripts/update-leap/update-leap.1update-leapmdoc
+++ b/scripts/update-leap/update-leap.1update-leapmdoc
@@ -1,9 +1,9 @@
-.Dd March 21 2017
+.Dd February 27 2018
 .Dt UPDATE_LEAP 1update-leapmdoc User Commands
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (update-leap-opts.mdoc)
 .\"
-.\"  It has been AutoGen-ed  March 21, 2017 at 10:40:35 AM by AutoGen 5.18.5
+.\"  It has been AutoGen-ed  February 27, 2018 at 04:55:53 PM by AutoGen 5.18.5
 .\"  From the definitions    update-leap-opts.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
diff --git a/scripts/update-leap/update-leap.html b/scripts/update-leap/update-leap.html
index 5e9aef1ac62c..030353037e91 100644
--- a/scripts/update-leap/update-leap.html
+++ b/scripts/update-leap/update-leap.html
@@ -30,7 +30,7 @@ Up: (dir)
 
   

This document describes the use of the NTP Project's update-leap program. -

This document applies to version 4.2.8p10 of update-leap. +

This document applies to version 4.2.8p11 of update-leap.

Short Contents

@@ -114,56 +114,7 @@ the usage text by passing it through a pager program. used to select the program, defaulting to more. Both will exit with a status code of 0. -
    update-leap
-        Usage: $0 [options] [leapfile]
-
-        Verifies and if necessary, updates leap-second definition file
-
-        All arguments are optional: Default (or current value) shown: -s
-        Specify the URL of the master copy to download $LEAPSRC -d Specify
-        the filename on the local system $LEAPFILE -e Specify how long (in
-        days) before expiration the file is to be refreshed. Note that
-        larger values imply more frequent refreshes. "$PREFETCH" -f Specify
-        location of ntp.conf (used to make sure leapfile directive is
-        present and to default leapfile) $NTPCONF -F Force update even if
-        current file is OK and not close to expiring. -r Specify number of
-        times to retry on get failure $MAXTRIES -i Specify number of minutes
-        between retries $INTERVAL -l Use syslog for output (Implied if
-        CRONJOB is set) -L Don't use syslog for output -P Specify the syslog
-        facility for logging $LOGFAC -t Name of temporary file used in
-        validation $TMPFILE -q Only report errors to stdout -v Verbose
-        output
-
-        The following options are not (yet) implemented in the perl version:
-        -4 Use only IPv4 -6 Use only IPv6 -c Command to restart NTP after
-        installing a new file <none> - ntpd checks file daily -p 4|6 Prefer
-        IPv4 or IPv6 (as specified) addresses, but use either -z Specify
-        path for utilities $PATHLIST -Z Only use system path
-
-        $0 will validate the file currently on the local system
-
-        Ordinarily, the file is found using the "leapfile" directive in
-        $NTPCONF. However, an alternate location can be specified on the
-        command line.
-
-        If the file does not exist, is not valid, has expired, or is
-        expiring soon, a new copy will be downloaded. If the new copy
-        validates, it is installed and NTP is (optionally) restarted.
-
-        If the current file is acceptable, no download or restart occurs.
-
-        -c can also be used to invoke another script to perform
-        administrative functions, e.g. to copy the file to other local
-        systems.
-
-        This can be run as a cron job. As the file is rarely updated, and
-        leap seconds are announced at least one month in advance (usually
-        longer), it need not be run more frequently than about once every
-        three weeks.
-
-        For cron-friendly behavior, define CRONJOB=1 in the crontab.
-
-        Version $VERSION
+
 


diff --git a/scripts/update-leap/update-leap.in b/scripts/update-leap/update-leap.in index bd7ed1805cd4..abf1134c1ff5 100755 --- a/scripts/update-leap/update-leap.in +++ b/scripts/update-leap/update-leap.in @@ -1,427 +1,474 @@ #! @PATH_PERL@ -w -# Copyright (C) 2015 Network Time Foundation +# Copyright (C) 2015, 2017 Network Time Foundation # Author: Harlan Stenn - +# +# General cleanup and https support: Paul McMath +# # Original shell version: # Copyright (C) 2014 Timothe Litt litt at acm dot org - +# # This script may be freely copied, used and modified providing that # this notice and the copyright statement are included in all copies # and derivative works. No warranty is offered, and use is entirely at # your own risk. Bugfixes and improvements would be appreciated by the # author. +######## BEGIN ######### use strict; +# Core modules use Digest::SHA qw(sha1_hex); +use File::Basename; use File::Copy qw(move); -use File::Fetch; +use File::Temp qw(tempfile); use Getopt::Long qw(:config auto_help no_ignore_case bundling); -use Sys::Syslog; +use Sys::Syslog qw(:standard :macros); -my $VERSION="1.003"; +# External modules +use HTTP::Tiny 0.056; +use Net::SSLeay 1.49; +use IO::Socket::SSL 1.56; -# leap-seconds file manager/updater +my $VERSION = '1.004'; -# ########## Default configuration ########## -# +my $RUN_DIR = '/tmp'; +my $RUN_UID = 0; +my $TMP_FILE; +my $TMP_FH; +my $FILE_MODE = 0644; + +######## DEFAULT CONFIGURATION ########## +# LEAP FILE SRC URIS +# HTTPS - (default) +# https://www.ietf.org/timezones/data/leap-seconds +# HTTP - No TLS/SSL - (not recommended) +# http://www.ietf.org/timezones/data/leap-seconds.list -my $CRONJOB = $ENV{'CRONJOB'}; -$CRONJOB = "" unless defined($CRONJOB); -my $LOGGER; -my $QUIET = ""; -my $VERBOSE = ""; - -# Where to get the file -# Choices: -# https://www.ietf.org/timezones/data/leap-seconds.list -# ftp://time.nist.gov/pub/leap-seconds.list -my $LEAPSRC="https://www.ietf.org/timezones/data/leap-seconds.list"; +my $LEAPSRC = 'https://www.ietf.org/timezones/data/leap-seconds.list'; my $LEAPFILE; # How many times to try to download new file -my $MAXTRIES=6; -my $INTERVAL=10; +my $MAXTRIES = 6; +my $INTERVAL = 10; -# Where to find ntp config file -my $NTPCONF="/etc/ntp.conf"; +my $NTPCONF='/etc/ntp.conf'; # How long (in days) before expiration to get updated file -my $PREFETCH="60"; +my $PREFETCH = 60; +my $EXPIRES; +my $FORCE; + +# Output Flags +my $QUIET; +my $DEBUG; +my $SYSLOG; +my $TOTERM; +my $LOGFAC = 'LOG_USER'; + +######### PARSE/SET OPTIONS ######### +my %SSL_OPTS; +my %SSL_ATTRS = ( + verify_SSL => 1, + SSL_options => \%SSL_OPTS, +); -# How to restart NTP - older NTP: service ntpd? try-restart | condrestart -# Recent NTP checks for new file daily, so there's nothing to do -my $RESTART=""; +our(%opt); -my $EXPIRES; -my $FORCE = ""; +GetOptions(\%opt, + 'C=s', + 'D=s', + 'e:60', + 'F', + 'f=s', + 'h|help', + 'i:10', + 'L=s', + 'l=s', + 'q', + 'r:6', + 's', + 't', + 'u=s', + 'v', + ); -# Where to put temporary copy before it's validated -my $TMPFILE="/tmp/leap-seconds.$$.tmp"; +$LOGFAC = $opt{l} if defined $opt{l}; +$LEAPSRC = $opt{u} if defined $opt{u}; +$LEAPFILE = $opt{L} if defined $opt{L}; +$PREFETCH = $opt{e} if defined $opt{e}; +$NTPCONF = $opt{f} if defined $opt{f}; +$MAXTRIES = $opt{r} if defined $opt{r}; +$INTERVAL = $opt{i} if defined $opt{i}; + +$FORCE = 1 if defined $opt{F}; +$DEBUG = 1 if defined $opt{v}; +$QUIET = 1 if defined $opt{q}; +$SYSLOG = 1 if defined $opt{s}; +$TOTERM = 1 if defined $opt{t}; + +$SSL_OPTS{SSL_ca_file} = $opt{C} if (defined($opt{C})); +$SSL_OPTS{SSL_ca_path} = $opt{D} if (defined($opt{D})); + +############### +## START MAIN +############### +my $PROG = basename($0); + +# Logging - Default is to use syslog(3) if STDOUT isn't +# connected to a tty. +if ($SYSLOG || !-t STDOUT) { + $SYSLOG = 1; + openlog($PROG, 'pid', $LOGFAC); +} +else { + $TOTERM = 1; +} -# Syslog facility -my $LOGFAC="daemon"; +if (defined $opt{q} && defined $opt{v}) { + log_fatal(LOG_ERR, '-q and -v options mutually exclusive'); +} -# ########################################### +if (defined $opt{L} && defined $opt{f}) { + log_fatal(LOG_ERR, '-L and -f options mutually exclusive'); +} -=item update-leap +$SIG{INT} = \&signal_catcher; +$SIG{TERM} = \&signal_catcher; +$SIG{QUIT} = \&signal_catcher; -Usage: $0 [options] [leapfile] +# Take some security precautions +close STDIN; -Verifies and if necessary, updates leap-second definition file +# Show help +if (defined $opt{h}) { + show_help(); + exit 0; +} -All arguments are optional: Default (or current value) shown: - -s Specify the URL of the master copy to download - $LEAPSRC - -d Specify the filename on the local system - $LEAPFILE - -e Specify how long (in days) before expiration the file is to be - refreshed. Note that larger values imply more frequent refreshes. - "$PREFETCH" - -f Specify location of ntp.conf (used to make sure leapfile directive is - present and to default leapfile) - $NTPCONF - -F Force update even if current file is OK and not close to expiring. - -r Specify number of times to retry on get failure - $MAXTRIES - -i Specify number of minutes between retries - $INTERVAL - -l Use syslog for output (Implied if CRONJOB is set) - -L Don't use syslog for output - -P Specify the syslog facility for logging - $LOGFAC - -t Name of temporary file used in validation - $TMPFILE - -q Only report errors to stdout - -v Verbose output +if ($< != $RUN_UID) { + log_fatal(LOG_ERR, 'User ' . getpwuid($<) . " (UID $<) tried to run $PROG"); +} -The following options are not (yet) implemented in the perl version: - -4 Use only IPv4 - -6 Use only IPv6 - -c Command to restart NTP after installing a new file - - ntpd checks file daily - -p 4|6 - Prefer IPv4 or IPv6 (as specified) addresses, but use either - -z Specify path for utilities - $PATHLIST - -Z Only use system path +chdir $RUN_DIR || log_fatal("Failed to change dir to $RUN_DIR"); -$0 will validate the file currently on the local system +# Parse ntp.conf for path to leapfile if not set by user +if (! $LEAPFILE) { -Ordinarily, the file is found using the "leapfile" directive in $NTPCONF. -However, an alternate location can be specified on the command line. + open my $LF, '<', $NTPCONF || log_fatal(LOG_ERR, "Can't open <$NTPCONF>: $!"); -If the file does not exist, is not valid, has expired, or is expiring soon, -a new copy will be downloaded. If the new copy validates, it is installed and -NTP is (optionally) restarted. + while (<$LF>) { + chomp; + $LEAPFILE = $1 if /^ *leapfile\s+"(\S+)"/; + } + close $LF; -If the current file is acceptable, no download or restart occurs. + if (! $LEAPFILE) { + log_fatal(LOG_ERR, "No leapfile directive in $NTPCONF; leapfile location not known"); + } +} --c can also be used to invoke another script to perform administrative -functions, e.g. to copy the file to other local systems. +-s $LEAPFILE || logger(LOG_DEBUG, "Leapfile $LEAPFILE is empty"); -This can be run as a cron job. As the file is rarely updated, and leap -seconds are announced at least one month in advance (usually longer), it -need not be run more frequently than about once every three weeks. +# Download new file if: +# 1. file doesn't exist +# 2. invoked w/ force flag (-F) +# 3. current file isn't valid +# 4. current file expired or expires soon -For cron-friendly behavior, define CRONJOB=1 in the crontab. +if ( !-e $LEAPFILE || $FORCE || ! verifySHA($LEAPFILE) || + ( $EXPIRES lt ( $PREFETCH * 86400 + time() ) )) { -Version $VERSION -=cut + for (my $try = 1; $try <= $MAXTRIES; $try++) { + logger(LOG_DEBUG, "Attempting download from $LEAPSRC, try $try.."); -# Default: Use syslog for logging if running under cron + ($TMP_FH, $TMP_FILE) = tempfile(UNLINK => 1, SUFFIX => '.list'); -my $SYSLOG = $CRONJOB; + if (retrieve_file($TMP_FH)) { -# Parse options + if ( verifySHA($TMP_FILE) ) { + move_file($TMP_FILE, $LEAPFILE); + chmod $FILE_MODE, $LEAPFILE; + logger(LOG_INFO, "Installed new $LEAPFILE from $LEAPSRC"); + } + else { + logger(LOG_ERR, "Downloaded file $TMP_FILE rejected -- saved for diagnosis"); + move_file($TMP_FILE, 'leap-seconds.list_corrupt'); + exit 1; + } + # Fall through + exit 0; + } -our(%opt); + # Failure + unlink $TMP_FILE; + logger(LOG_INFO, "Download failed. Waiting $INTERVAL minutes before retrying..."); + sleep $INTERVAL * 60 ; + } -GetOptions(\%opt, - 'c=s', - 'e:60', - 'F', - 'f=s', - 'i:10', - 'L', - 'l', - 'P=s', - 'q', - 'r:6', - 's=s', - 't=s', - 'v' - ); + # Failed and out of retries + log_fatal(LOG_ERR, "Download from $LEAPSRC failed after $MAXTRIES attempts"); +} -$LOGFAC=$opt{P} if (defined($opt{P})); -$LEAPSRC=$opt{s} if (defined($opt{s})); -$PREFETCH=$opt{e} if (defined($opt{e})); -$NTPCONF=$opt{f} if (defined($opt{f})); -$FORCE="Y" if (defined($opt{F})); -$RESTART=$opt{c} if (defined($opt{c})); -$MAXTRIES=$opt{r} if (defined($opt{r})); -$INTERVAL=$opt{i} if (defined($opt{i})); -$TMPFILE=$opt{t} if (defined($opt{t})); -$SYSLOG="Y" if (defined($opt{l})); -$SYSLOG="" if (defined($opt{L})); -$QUIET="Y" if (defined($opt{q})); -$VERBOSE="Y" if (defined($opt{v})); +logger(LOG_INFO, "Not time to replace $LEAPFILE"); -# export PATH="$PATHLIST$PATH" +exit 0; + +######## SUB ROUTINES ######### +sub move_file { + + (my $src, my $dst) = @_; + + if ( move($src, $dst) ) { + logger(LOG_DEBUG, "Moved $src to $dst"); + } + else { + log_fatal(LOG_ERR, "Moving $src to $dst failed: $!"); + } +} -# Handle logging +# Removes temp file if terminating signal recv'd +sub signal_catcher { + my $signame = shift; -openlog($0, 'pid', $LOGFAC); + close $TMP_FH; + unlink $TMP_FILE; + log_fatal(LOG_INFO, "Recv'd SIG${signame}. Terminating."); +} + +sub log_fatal { + my ($p, $msg) = @_; + logger($p, $msg); + exit 1; +} sub logger { - my ($priority, $message) = @_; - - # "priority" "message" - # - # Stdout unless syslog specified or logger isn't available - # - if ($SYSLOG eq "" or $LOGGER eq "") { - if ($QUIET ne "" and ( $priority eq "info" or $priority eq "notice" or $priority eq "debug" ) ) { - return 0 + my ($p, $msg) = @_; + + # Suppress LOG_DEBUG msgs unless $DEBUG set + return if (!$DEBUG && $p eq LOG_DEBUG); + + # Suppress all but LOG_ERR msgs if $QUIET set + return if ($QUIET && $p ne LOG_ERR); + + if ($TOTERM) { + if ($p eq LOG_ERR) { # errors should go to STDERR + print STDERR "$msg\n"; + } + else { + print STDOUT "$msg\n"; } - printf "%s: $message\n", uc $priority; - return 0; } - # Also log to stdout if cron job && notice or higher - if (($CRONJOB ne "" and ($priority ne "info" ) and ($priority ne "debug" )) || ($VERBOSE ne "")) { - # Log to stderr as well - print STDERR "$0: $priority: $message\n"; + if ($SYSLOG) { + syslog($p, $msg) } - syslog($priority, $message); } -# Verify interval -# INTERVAL=$(( $INTERVAL *1 )) +################################# +# Connect to server and retrieve file +# +# Since we make as many as $MAXTRIES attempts to connect to the remote +# server to download the file, the network socket should be closed after +# each attempt, rather than let it be reused (because it may be in some +# unknown state). +# +# HTTP::Tiny doesn't export a method to explicitly close a connected +# socket, therefore, we instantiate the lexically scoped $http object in +# a function; when the function returns, the object goes out of scope +# and is destroyed, closing the socket. +sub retrieve_file { + + my $fh = shift; + my $http; + + if ($LEAPSRC =~ /^https\S+/) { + $http = HTTP::Tiny->new(%SSL_ATTRS); + (my $ok, my $why) = $http->can_ssl; + log_fatal(LOG_ERR, "TLS/SSL config error: $why") if ! $ok; + } + else { + $http = HTTP::Tiny->new(); + } + my $reply = $http->get($LEAPSRC); + + if ($reply->{success}) { + logger(LOG_DEBUG, "Download of $LEAPSRC succeeded"); + print $fh $reply->{content} || + log_fatal(LOG_ERR, "Couldn't write new file contents to temp file: $!"); + close $fh; + return 1; + } + else { + close $fh; + return 0; + } +} + +######################## # Validate a leap-seconds file checksum # -# File format: (full description in files) -# # marks comments, except: -# #$ number : the NTP date of the last update -# #@ number : the NTP date that the file expires -# Date (seconds since 1900) leaps : leaps is the # of seconds to add for times >= Date +# File format: (full description in file) +# Pound sign (#) marks comments, EXCEPT: +# #$ number : the NTP date of the last update +# #@ number : the NTP date that the file expires +# #h hex hex hex hex hex : the SHA-1 checksum of the data & dates, +# excluding whitespace w/o leading zeroes +# +# Date (seconds since 1900) leaps : leaps is the # of seconds to add +# for times >= Date # Date lines have comments. -# #h hex hex hex hex hex is the SHA-1 checksum of the data & dates, excluding whitespace w/o leading zeroes # # Returns: -# 0 File is valid -# 1 Invalid Checksum -# 2 Expired +# 0 Invalid Checksum/Expired +# 1 File is valid sub verifySHA { - my ($file, $verbose) = @_; - my $raw = ""; - my $data = ""; + my $file = shift; + my $fh; + my $data; my $FSHA; + open $fh, '<', $file || log_fatal(LOG_ERR, "Can't open $file: $!"); + # Remove comments, except those that are markers for last update, # expires and hash - - unless (open(LF, $file)) { - warn "Can't open <$file>: $!\n"; - print "Will try and create that file.\n"; - return 1; - }; - while () { + while (<$fh>) { if (/^#\$/) { - $raw .= $_; - s/^..//; - $data .= $_; + s/^..//; + $data .= $_; } elsif (/^#\@/) { - $raw .= $_; - s/^..//; - $data .= $_; - s/\s+//g; - $EXPIRES = $_ - 2208988800; + s/^..//; + $data .= $_; + s/\s+//g; + $EXPIRES = $_ - 2208988800; } elsif (/^#h\s+([[:xdigit:]]+)\s+([[:xdigit:]]+)\s+([[:xdigit:]]+)\s+([[:xdigit:]]+)\s+([[:xdigit:]]+)/) { - chomp; - $raw .= $_; - $FSHA = sprintf("%08s%08s%08s%08s%08s", $1, $2, $3, $4, $5); + chomp; + $FSHA = sprintf("%08s%08s%08s%08s%08s", $1, $2, $3, $4, $5); } elsif (/^#/) { - # ignore it + # ignore it } elsif (/^\d/) { - s/#.*$//; - $raw .= $_; - $data .= $_; - } else { - chomp; - print "Unexpected line: <$_>\n"; + s/#.*$//; + $data .= $_; + } + else { + chomp; + print "Unexpected line: <$_>\n"; } } - close LF; + close $fh; + + if ( $EXPIRES < time() ) { + logger(LOG_DEBUG, 'File expired on ' . gmtime($EXPIRES)); + return 0; + } + + if (! $FSHA) { + logger(LOG_NOTICE, "no checksum record found in file"); + return 0; + } # Remove all white space $data =~ s/\s//g; # Compute the SHA hash of the data, removing the marker and filename # Computed in binary mode, which shouldn't matter since whitespace has been removed - my $DSHA = sha1_hex($data); - # Extract the file's hash. Restore any leading zeroes in hash segments. - - if ( ( "$FSHA" ne "" ) && ( $FSHA eq $DSHA ) ) { - if ( $verbose ne "" ) { - logger("info", "Checksum of $file validated"); - } - } else { - logger("error", "Checksum of $file is invalid:"); - $FSHA="(no checksum record found in file)" - if ( $FSHA eq ""); - logger("error", "EXPECTED: $FSHA"); - logger("error", "COMPUTED: $DSHA"); - return 1; - } - - # Check the expiration date, converting NTP epoch to Unix epoch used by date - - if ( $EXPIRES < time() ) { - logger("notice", "File expired on " . gmtime($EXPIRES)); - return 2; + if ($FSHA eq $DSHA) { + logger(LOG_DEBUG, "Checksum of $file validated"); + return 1; + } + else { + logger(LOG_NOTICE, "Checksum of $file is invalid EXPECTED: $FSHA COMPUTED: $DSHA"); + return 0; } - return 0; } -# Verify ntp.conf - --r $NTPCONF || die "Missing ntp configuration: $NTPCONF\n"; +sub show_help { +print <: $!\n"; -while () { - chomp; - if (/^ *leapfile\s+"(\S+)"/) { - $LEAPFILE = $1; - } -} -close LF; +Verifies and if necessary, updates leap-second definition file --s $LEAPFILE || warn "$NTPCONF specifies $LEAPFILE as a leapfile, which is empty.\n"; +All arguments are optional: Default (or current value) shown: + -C Absolute path to CA Cert (see SSL/TLS Considerations) + -D Path to a CAdir (see SSL/TLS Considerations) + -e Specify how long (in days) before expiration the file is to be + refreshed. Note that larger values imply more frequent refreshes. + $PREFETCH + -F Force update even if current file is OK and not close to expiring. + -f Absolute path ntp.conf file (default /etc/ntp.conf) + $NTPCONF + -h show help + -i Specify number of minutes between retries + $INTERVAL + -L Absolute path to leapfile on the local system + (overrides value in ntp.conf) + -l Specify the syslog(3) facility for logging + $LOGFAC + -q Only report errors (cannot be used with -v) + -r Specify number of attempts to retrieve file + $MAXTRIES + -s Send output to syslog(3) - implied if STDOUT has no tty or redirected + -t Send output to terminal - implied if STDOUT attached to terminal + -u Specify the URL of the master copy to download + $LEAPSRC + -v Verbose - show debug messages (cannot be used with -q) -# Allow placing the file someplace else - testing +The following options are not (yet) implemented in the perl version: + -4 Use only IPv4 + -6 Use only IPv6 + -c Command to restart NTP after installing a new file + - ntpd checks file daily + -p 4|6 + Prefer IPv4 or IPv6 (as specified) addresses, but use either -if ( defined $ARGV[0] ) { - if ( $ARGV[0] ne $LEAPFILE ) { - logger("notice", "Requested install to $ARGV[0], but $NTPCONF specifies $LEAPFILE"); - } - $LEAPFILE = $ARGV[0]; -} +$PROG will validate the file currently on the local system. -# Verify the current file -# If it is missing, doesn't validate or expired -# Or is expiring soon -# Download a new one - -if ( $FORCE ne "" || verifySHA($LEAPFILE, $VERBOSE) || ( $EXPIRES lt ( $PREFETCH * 86400 + time() ) )) { - my $TRY = 0; - my $ff = File::Fetch->new(uri => $LEAPSRC) || die "Fetch failed.\n"; - while (1) { - ++$TRY; - logger("info", "Attempting download from $LEAPSRC, try $TRY..") - if ($VERBOSE ne ""); - my $where = $ff->fetch( to => '/tmp' ); - - if ($where) { - logger("info", "Download of $LEAPSRC succeeded"); - - if ( verifySHA($where, $VERBOSE )) { - # There is no point in retrying, as the file on the - # server is almost certainly corrupt. - - logger("warning", "Downloaded file $where rejected -- saved for diagnosis"); - exit 1; - } +Ordinarily, the leapfile is found using the 'leapfile' directive in +$NTPCONF. However, an alternate location can be specified on the +command line with the -L flag. - # While the shell script version will set correct permissions - # on temporary file, for the perl version that's harder, so - # for now at least one should run this script as the - # appropriate user. - - # REFFILE="$LEAPFILE" - # if [ ! -f $LEAPFILE ]; then - # logger "notice" "$LEAPFILE was missing, creating new copy - check permissions" - # touch $LEAPFILE - # # Can't copy permissions from old file, copy from NTPCONF instead - # REFFILE="$NTPCONF" - # fi - # chmod --reference $REFFILE $TMPFILE - # chown --reference $REFFILE $TMPFILE - # ( which selinuxenabled && selinuxenabled && which chcon ) >/dev/null 2>&1 - # if [ $? == 0 ] ; then - # chcon --reference $REFFILE $TMPFILE - # fi - - # Replace current file with validated new one - - if ( move $where, $LEAPFILE ) { - logger("notice", "Installed new $LEAPFILE from $LEAPSRC"); - } else { - logger("error", "Install $where => $LEAPFILE failed -- saved for diagnosis: $!"); - exit 1; - } +If the leapfile does not exist, is not valid, has expired, or is +expiring soon, a new copy will be downloaded. If the new copy is +valid, it is installed. - # Restart NTP (or whatever else is specified) - - if ( $RESTART ne "" ) { - if ( $VERBOSE ne "" ) { - logger("info", "Attempting restart action: $RESTART"); - } - -# XXX - #R="$( 2>&1 $RESTART )" - #if [ $? -eq 0 ]; then - # logger "notice" "Restart action succeeded" - # if [ -n "$VERBOSE" -a -n "$R" ]; then - # logger "info" "$R" - # fi - #else - # logger "error" "Restart action failed" - # if [ -n "$R" ]; then - # logger "error" "$R" - # fi - # exit 2 - #fi - } - exit 0; - } +If the current file is acceptable, no download or restart occurs. - # Failed to download. See about trying again +This can be run as a cron job. As the file is rarely updated, and +leap seconds are announced at least one month in advance (usually +longer), it need not be run more frequently than about once every +three weeks. - # rm -f $TMPFILE - if ( $TRY ge $MAXTRIES ) { - last; - } - if ( $VERBOSE ne "" ) { - logger("info", "Waiting $INTERVAL minutes before retrying..."); - } - sleep $INTERVAL * 60 ; - } +SSL/TLS Considerations +----------------------- +The perl modules can usually locate the CA certificate used to verify +the peer's identity. - # Failed and out of retries +On BSDs, the default is typically the file /etc/ssl/certs.pem. On +Linux, the location is typically a path to a CAdir - a directory of +symlinks named according to a hash of the certificates' subject names. - logger("warning", "Download from $LEAPSRC failed after $TRY attempts"); - exit 1; -} +The -C or -D options are available to pass in a location if no CA cert +is found in the default location. -print "FORCE is <$FORCE>\n"; -print "verifySHA is " . verifySHA($LEAPFILE, "") . "\n"; -print "EXPIRES <$EXPIRES> vs ". ( $PREFETCH * 86400 + time() ) . "\n"; +External Dependencies +--------------------- +The following perl modules are required: +HTTP::Tiny - version >= 0.056 +IO::Socket::SSL - version >= 1.56 +NET::SSLeay - version >= 1.49 -logger("info", "Not time to replace $LEAPFILE"); +Version: $VERSION -exit 0; +EOF +} -# EOF diff --git a/scripts/update-leap/update-leap.man.in b/scripts/update-leap/update-leap.man.in index bd628712ac46..380774a8bf33 100644 --- a/scripts/update-leap/update-leap.man.in +++ b/scripts/update-leap/update-leap.man.in @@ -10,11 +10,11 @@ .ds B-Font B .ds I-Font I .ds R-Font R -.TH update-leap 1update-leapman "21 Mar 2017" "ntp (4.2.8p10)" "User Commands" +.TH update-leap 1update-leapman "27 Feb 2018" "ntp (4.2.8p11)" "User Commands" .\" -.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-6XaW6m/ag-hYa45m) +.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-cKaOWT/ag-pKaWVT) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:40:27 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 10:50:15 AM by AutoGen 5.18.5 .\" From the definitions update-leap-opts.def .\" and the template file agman-cmd.tpl .SH NAME diff --git a/scripts/update-leap/update-leap.mdoc.in b/scripts/update-leap/update-leap.mdoc.in index 2bb1d59e29cd..1af0cd3b829d 100644 --- a/scripts/update-leap/update-leap.mdoc.in +++ b/scripts/update-leap/update-leap.mdoc.in @@ -1,9 +1,9 @@ -.Dd March 21 2017 +.Dd February 27 2018 .Dt UPDATE_LEAP 1update-leapmdoc User Commands .Os .\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc) .\" -.\" It has been AutoGen-ed March 21, 2017 at 10:40:35 AM by AutoGen 5.18.5 +.\" It has been AutoGen-ed February 27, 2018 at 04:55:53 PM by AutoGen 5.18.5 .\" From the definitions update-leap-opts.def .\" and the template file agmdoc-cmd.tpl .Sh NAME -- cgit v1.2.3