<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f80478487ef837e2adfb5f37fa7e0b2a2bb3ce52">https://github.com/macports/macports-ports/commit/f80478487ef837e2adfb5f37fa7e0b2a2bb3ce52</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new f80478487ef ntpsec: update to 1.2.3
</span>f80478487ef is described below
<span style='display:block; white-space:pre;color:#808000;'>commit f80478487ef837e2adfb5f37fa7e0b2a2bb3ce52
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Sun Dec 31 21:24:22 2023 -0800
<span style='display:block; white-space:pre;color:#404040;'> ntpsec: update to 1.2.3
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This includes the patches for compatibility with macOS<10.13,
</span><span style='display:block; white-space:pre;color:#404040;'> which can also be seen (more readably) at:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> https://gitlab.com/fhgwright/ntpsec/tree/macports-1_2_3
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Now allows 10.5 x86_64, since the bugs affecting it have been fixed
</span><span style='display:block; white-space:pre;color:#404040;'> (in patches here). 10.4 x86_64 would probably also work, but
</span><span style='display:block; white-space:pre;color:#404040;'> currently has broken dependencies.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also removes now-unnecessary dependency on py312-setuptools.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'> Built (including running tests) and ran operationally on 10.4-10.5
</span><span style='display:block; white-space:pre;color:#404040;'> ppc, 10.4-10.6 i386, 10.5-10.15 x86_64, and 11.x-14.x arm64.
</span>---
sysutils/ntpsec/Portfile | 27 +--
sysutils/ntpsec/files/patch-allfixes.diff | 383 +++++++++++++++++-------------
2 files changed, 222 insertions(+), 188 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/ntpsec/Portfile b/sysutils/ntpsec/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 0f4aa5a23a2..6b78836a622 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/ntpsec/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/ntpsec/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ PortGroup python 1.0
</span> PortGroup openssl 1.0
name ntpsec
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 1.2.2a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.2.3
</span> revision 0
categories sysutils net
maintainers {fwright.net:fw @fhgwright} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,21 +20,9 @@ homepage https://www.ntpsec.org/
</span> conflicts ntp openntpd
master_sites ftp://ftp.ntpsec.org/pub/releases/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 a00b6cddeb16087bd2c139340142519f68fefd5b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 e0ce93af222a0a9860e6f5a51aadba9bb5ca601d80b2aea118a62f0a3226950e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 2710790
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# 10.5 x86_64 builds successfully and passes all build tests, but doesn't
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# actually work. This has apparently been true forever, but until recently,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# dependency issues prevented building it at all. Since this is a rare case
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# and not really a regression, we simply disallow it for now. It's unknown
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# whether 10.4 x86_64 has the same issue, but we also disallow that out of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# conservatism. This should be removed once the code is fixed.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This bug has been verified as still present as of 1.2.2.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.platform} eq "darwin" && ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- supported_archs i386 ppc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 f6ee175289710afd8c053dd39a5a825d995c7a15 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 750b7337b3b42b5573700a8d5a483e1bf556e447549177a670c7c00fb9049375 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 2725081
</span>
# ntpsec requires Python 2.6, 2.7, or 3.3+.
# We skip 2.6 and 3.3, but keep 2.7 and 3.4+.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -103,13 +91,6 @@ openssl.branch 3
</span> depends_build-append port:bison port:pkgconfig
#depends_lib-append port:python${pyver_no_dot}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Python 3.12+ has deprecated distutils, which is needed by the build.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# It remains available via setuptools, so we add the dependency.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This seems to have been fixed upstream, so the next release can remove this.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${pyver_no_dot} >= 312} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:py${pyver_no_dot}-setuptools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Consolidated patchfile, based on GitHub/fhgwright/macports-releases
patchfiles patch-allfixes.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/ntpsec/files/patch-allfixes.diff b/sysutils/ntpsec/files/patch-allfixes.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 163d63cfc35..fc14ef7175c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/ntpsec/files/patch-allfixes.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/ntpsec/files/patch-allfixes.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span> --- attic/backwards.c.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ attic/backwards.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ attic/backwards.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -7,6 +7,8 @@
#include <stdlib.h>
#include <time.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,8 +9,8 @@
</span> #define UNUSED_ARG(arg) ((void)(arg))
static void ts_print(struct timespec *ts0, struct timespec *ts1);
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- attic/clocks.c.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ attic/clocks.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- attic/clocks.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ attic/clocks.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -9,6 +9,8 @@
#include <unistd.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,9 +20,9 @@
</span> struct table {
const int type;
const char* name;
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- attic/cmac-timing.c.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ attic/cmac-timing.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -35,6 +35,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- attic/cmac-timing.c.orig 2023-12-28 20:53:53.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ attic/cmac-timing.c 2023-12-30 22:12:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,6 +36,8 @@
</span> #include <openssl/params.h>
#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,19 +31,19 @@
</span> #define UNUSED_ARG(arg) ((void)(arg))
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- attic/digest-timing.c.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ attic/digest-timing.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -33,6 +33,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- attic/digest-timing.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ attic/digest-timing.c 2023-12-30 22:12:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,6 +32,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/objects.h>
</span> #include <openssl/ssl.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span>
+#include "ntp_machine.h" /* For clock_gettime fallback */
+
#define UNUSED_ARG(arg) ((void)(arg))
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef EVP_MD_CTX_reset
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- attic/random.c.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ attic/random.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef EVP_MD_CTX_new
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- attic/random.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ attic/random.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -10,6 +10,8 @@
#include <openssl/opensslv.h> /* for OPENSSL_VERSION_NUMBER */
#include <openssl/rand.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -54,7 +54,7 @@
</span> #define BILLION 1000000000
#define HISTSIZE 2500
--- include/ntp_machine.h.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ include/ntp_machine.h 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/ntp_machine.h 2023-12-30 22:12:39.000000000 -0800
</span> @@ -13,14 +13,145 @@
#ifndef CLOCK_REALTIME
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -207,9 +207,9 @@
</span>
int ntp_set_tod (struct timespec *tvs);
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- include/ntp_stdlib.h.orig 2022-12-22 22:08:52.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ include/ntp_stdlib.h 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -95,7 +95,9 @@ extern const char * eventstr (int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/ntp_stdlib.h.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/ntp_stdlib.h 2023-12-30 22:12:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,7 +103,9 @@ extern const char * eventstr (int);
</span> extern const char * ceventstr (int);
extern const char * res_match_flags(unsigned short);
extern const char * res_access_flags(unsigned short);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -220,7 +220,7 @@
</span> extern const char * socktoa (const sockaddr_u *);
extern const char * socktoa_r (const sockaddr_u *sock, char *buf, size_t buflen);
--- include/ntp_syscall.h.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ include/ntp_syscall.h 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/ntp_syscall.h 2023-12-30 22:12:39.000000000 -0800
</span> @@ -9,9 +9,11 @@
#ifndef GUARD_NTP_SYSCALL_H
#define GUARD_NTP_SYSCALL_H
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -233,8 +233,8 @@
</span>
/*
* The units of the maxerror and esterror fields vary by platform. If
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- libntp/clockwork.c.orig 2022-12-22 22:08:52.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libntp/clockwork.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libntp/clockwork.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libntp/clockwork.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -5,8 +5,10 @@
#include "config.h"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -249,7 +249,7 @@
</span> #include "ntp.h"
#include "ntp_machine.h"
--- libntp/statestr.c.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libntp/statestr.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libntp/statestr.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -12,7 +12,9 @@
#include "lib_strbuf.h"
#include "ntp_refclock.h"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -350,133 +350,62 @@
</span>
/*
* statustoa - return a descriptive string for a peer status
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- ntpd/ntp_control.c.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ntpd/ntp_control.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1388,6 +1388,7 @@ ctl_putsys(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- char str[256];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- double dtemp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *ss;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static struct timex ntx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static unsigned long ntp_adjtime_time;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ntpd/ntp_control.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ntpd/ntp_control.c 2023-12-30 22:12:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,9 @@ struct utsname utsnamebuf;
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1403,6 +1404,7 @@ ctl_putsys(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ntp_adjtime_time = current_time;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Variables that need updating each time. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static leap_signature_t lsig;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static struct timex ntx;
</span> +#endif /* HAVE_KERNEL_PLL */
<span style='display:block; white-space:pre;background:#ffe0e0;'>- switch (varid) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1703,45 +1705,94 @@ ctl_putsys(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CASE_UINT(CS_AUTHRESET, current_time - auth_timereset);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * CTL_IF_KERNPPS() puts a zero if kernel hard PPS is not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * CTL_IF_KERNLOOP() puts a zero if the kernel loop is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * unavailable, otherwise calls putfunc with args.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define CTL_IF_KERNLOOP(putfunc, args) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putint(sys_var[varid].text, 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define CTL_IF_KERNLOOP(putfunc, args) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ putfunc args
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * CTL_IF_KERNPPS() puts a zero if either the kernel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * loop is unavailable, or kernel hard PPS is not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * active, otherwise calls putfunc with args.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define CTL_IF_KERNPPS(putfunc, args) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putint(sys_var[varid].text, 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # define CTL_IF_KERNPPS(putfunc, args) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (0 == ntx.shift) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ctl_putint(sys_var[varid].text, 0); \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- putfunc args /* no trailing ; */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case CS_K_OFFSET:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ctl_putdblf(sys_var[varid].text, false, -1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ntp_error_in_seconds(ntx.offset) * MS_PER_S);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putdblf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (sys_var[varid].text, false, -1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ntp_error_in_seconds(ntx.offset) * MS_PER_S)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CASE_SFP(CS_K_FREQ, ntx.freq);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CS_K_FREQ:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putsfp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (CV_NAME, ntx.freq)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case CS_K_MAXERR:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ctl_putdblf(sys_var[varid].text, false, 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ntp_error_in_seconds(ntx.maxerror) * MS_PER_S);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putdblf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (sys_var[varid].text, false, 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ntp_error_in_seconds(ntx.maxerror) * MS_PER_S)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case CS_K_ESTERR:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ctl_putdblf(sys_var[varid].text, false, 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ntp_error_in_seconds(ntx.esterror) * MS_PER_S);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putdblf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (sys_var[varid].text, false, 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ntp_error_in_seconds(ntx.esterror) * MS_PER_S)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Statistic counters to keep track of requests and responses.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -364,6 +366,7 @@ static const struct var sys_var[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_uli("authcmacdecrypts", RO, authcmacdecrypt),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_uli("authcmacfails", RO, authcmacfail),
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- case CS_K_STFLAGS:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ss = "";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ss = k_st_flags((uint32_t)ntx.status);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ctl_putstr(sys_var[varid].text, ss, strlen(ss));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* kerninfo: Kernel timekeeping info */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_kli("koffset", RO|N_CLOCK|KNUToMS, ntx.offset),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_kli("kfreq", RO|N_CLOCK|K_16, ntx.freq),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,6 +384,7 @@ static const struct var sys_var[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_li("kppscaliberrs", RO|N_CLOCK, ntx.errcnt),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_li("kppsjitexc", RO|N_CLOCK, ntx.jitcnt),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Var_li("kppsstbexc", RO|N_CLOCK, ntx.stbcnt),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* HAVE_KERNEL_PLL */
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- CASE_INT(CS_K_TIMECONST, ntx.constant);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CS_K_TIMECONST:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putint,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (CV_NAME, ntx.constant)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- case CS_K_PRECISION:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ctl_putdblf(sys_var[varid].text, false, 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ntp_error_in_seconds(ntx.precision) * MS_PER_S);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putdblf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (sys_var[varid].text, false, 6,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ntp_error_in_seconds(ntx.precision) * MS_PER_S)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* refclock stuff in ntp_io */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1395,7 +1399,9 @@ ctl_putarray(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctl_putsys(const struct var * v) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static unsigned long ntp_adjtime_time;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* HAVE_KERNEL_PLL */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static unsigned long ntp_leap_time;
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- CASE_SFP(CS_K_FREQTOL, ntx.tolerance);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CS_K_FREQTOL:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CTL_IF_KERNLOOP(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ctl_putsfp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (CV_NAME, ntx.tolerance)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* older compilers don't allow declarations on each case without {} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1407,6 +1413,7 @@ ctl_putsys(const struct var * v) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This should get pushed up a layer: flag, once per request
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This could get data from 2 samples if the clock ticks while we are working..
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_KERNEL_PLL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The Kernel clock variables need up-to-date output of ntp_adjtime() */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (v->flags&N_CLOCK && current_time != ntp_adjtime_time) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZERO(ntx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1415,6 +1422,7 @@ ctl_putsys(const struct var * v) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "MODE6: ntp_adjtime() for mode 6 query failed: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ntp_adjtime_time = current_time;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* HAVE_KERNEL_PLL */
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- case CS_K_PPS_FREQ:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CTL_IF_KERNPPS(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ntpd/ntp_loopfilter.c.orig 2022-12-22 22:08:52.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ntpd/ntp_loopfilter.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The leap second variables need up-to-date info */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (v->flags&N_LEAP && current_time != ntp_leap_time) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ntpd/ntp_loopfilter.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ntpd/ntp_loopfilter.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -23,8 +23,10 @@
#define NTP_MAXFREQ 500e-6
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -570,7 +499,7 @@
</span> /*
* This code segment works when clock adjustments are made using
* precision time kernel support and the ntp_adjtime() system
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -817,6 +832,7 @@ local_clock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -810,6 +825,7 @@ local_clock(
</span> }
#endif /* STA_NANO */
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -578,7 +507,7 @@
</span>
/*
* Clamp the frequency within the tolerance range and calculate
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -928,8 +944,10 @@ adj_host_clock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -921,8 +937,10 @@ adj_host_clock(
</span> } else if (freq_cnt > 0) {
offset_adj = clock_offset / (CLOCK_PLL * ULOGTOD(1));
freq_cnt--;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -589,7 +518,7 @@
</span> } else {
offset_adj = clock_offset / (CLOCK_PLL * ULOGTOD(clkstate.sys_poll));
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -940,9 +958,11 @@ adj_host_clock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -933,9 +951,11 @@ adj_host_clock(
</span> * set_freq(). Otherwise it is a component of the adj_systime()
* offset.
*/
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -601,7 +530,7 @@
</span> freq_adj = loop_data.drift_comp;
/* Bound absolute value of total adjustment to NTP_MAXFREQ. */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1031,6 +1051,7 @@ set_freq(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1024,6 +1044,7 @@ set_freq(
</span>
loop_data.drift_comp = freq;
loop_desc = "ntpd";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -609,7 +538,7 @@
</span> if (clock_ctl.pll_control) {
int ntp_adj_ret;
ZERO(ntv);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1043,10 +1064,12 @@ set_freq(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1036,10 +1057,12 @@ set_freq(
</span> ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, false, false, __LINE__ - 1);
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -622,7 +551,7 @@
</span> static void
start_kern_loop(void)
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1082,8 +1105,10 @@ start_kern_loop(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1075,8 +1098,10 @@ start_kern_loop(void)
</span> "kernel time sync enabled");
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -633,7 +562,7 @@
</span> static void
stop_kern_loop(void)
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1091,6 +1116,7 @@ stop_kern_loop(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1084,6 +1109,7 @@ stop_kern_loop(void)
</span> report_event(EVNT_KERN, NULL,
"kernel time sync disabled");
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -641,7 +570,7 @@
</span>
/*
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1103,11 +1129,15 @@ select_loop(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1096,11 +1122,15 @@ select_loop(
</span> {
if (clock_ctl.kern_enable == use_kern_loop)
return;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -657,7 +586,7 @@
</span> /*
* If this loop selection change occurs after initial startup,
* call set_freq() to switch the frequency compensation to or
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1163,10 +1193,12 @@ loop_config(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1156,10 +1186,12 @@ loop_config(
</span> * variables. Otherwise, continue leaving no harm behind.
*/
case LOOP_DRIFTINIT:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -670,7 +599,7 @@
</span>
/*
* Initialize frequency if given; otherwise, begin frequency
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1185,11 +1217,14 @@ loop_config(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1178,11 +1210,14 @@ loop_config(
</span> rstclock(EVNT_FSET, 0);
else
rstclock(EVNT_NSET, 0);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -685,7 +614,7 @@
</span> if (!loop_data.lockclock && (clock_ctl.pll_control && clock_ctl.kern_enable)) {
memset((char *)&ntv, 0, sizeof(ntv));
ntv.modes = MOD_STATUS;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1199,6 +1234,7 @@ loop_config(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1192,6 +1227,7 @@ loop_config(
</span> pll_status,
ntv.status);
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -693,13 +622,137 @@
</span> #endif
break;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1279,4 +1315,3 @@ loop_config(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1272,4 +1308,3 @@ loop_config(
</span> "CONFIG: loop_config: unsupported option %d", item);
}
}
-
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- ntpd/ntp_timer.c.orig 2022-12-22 22:08:52.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ntpd/ntp_timer.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ntpd/ntp_packetstamp.c.orig 2022-12-22 22:08:52.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ntpd/ntp_packetstamp.c 2023-12-30 22:12:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "config.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_SYS_IOCTL_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <sys/ioctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,6 +34,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * OSX prior to 10.6 defines CMSG_DATA incorrectly in 64-bit builds, due to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * bad alignment assumptions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * In those OS versions we substitute a version of the definition from >=10.6.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && (!defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1060)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define __DARWIN_ALIGNBYTES32 (sizeof(__uint32_t) - 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define __DARWIN_ALIGN32(p) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((size_t)((char *)(size_t)(p) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* given pointer to struct cmsghdr, return pointer to data */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef CMSG_DATA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CMSG_DATA(cmsg) ((unsigned char *)(cmsg) + \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __DARWIN_ALIGN32(sizeof(struct cmsghdr)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* OSX < 10.6 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Packet timestamps use the kernel's notion of time_t, which may not match
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the userspace version. We need to accomodate both 32- and 64-bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct timeval_32 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uint32_t tv_sec; /* Unsigned to get past 2038 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int32_t tv_usec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct timeval_64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int64_t tv_sec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int32_t tv_usec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_packetstamps(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -104,10 +143,11 @@ fetch_packetstamp(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct cmsghdr * cmsghdr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int datalen;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(SO_TIMESTAMPNS) || defined(SO_TS_CLOCK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct timespec * tsp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(SO_TIMESTAMP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- struct timeval * tvp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct timeval tv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef ENABLE_FUZZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned long ticks;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,6 +164,7 @@ fetch_packetstamp(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit(2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* return ts; ** Kludge to use time from select. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ datalen = cmsghdr->cmsg_len - sizeof(*cmsghdr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(SO_TIMESTAMPNS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Linux and ?? */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (SCM_TIMESTAMPNS != cmsghdr->cmsg_type) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -160,16 +201,42 @@ fetch_packetstamp(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (long)tsp->tv_sec, tsp->tv_nsec));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nts = tspec_stamp_to_lfp(*tsp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(SO_TIMESTAMP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tvp = (struct timeval *)CMSG_DATA(cmsghdr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch (datalen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case sizeof(struct timeval_32):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct timeval_32 *tvp = (struct timeval_32 *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMSG_DATA(cmsghdr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tv.tv_sec = tvp->tv_sec; tv.tv_usec = tvp->tv_usec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case sizeof(struct timeval_64):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct timeval_64 *tvp = (struct timeval_64 *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMSG_DATA(cmsghdr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tv.tv_sec = tvp->tv_sec; tv.tv_usec = tvp->tv_usec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ DPRINT(4,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ("fetch_timestamp: bad timestamp length %d",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ datalen));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ msyslog(LOG_ERR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "ERR: fetch_timestamp: bad timestamp length %d",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ datalen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit(2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef ENABLE_FUZZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sys_tick > measured_tick && sys_tick > S_PER_NS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ticks = (unsigned long) ((tvp->tv_usec * S_PER_NS) / sys_tick);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tvp->tv_usec = (long)(ticks * US_PER_S * sys_tick);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ticks = (unsigned long) ((tv.tv_usec * S_PER_NS) / sys_tick);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tv.tv_usec = (long)(ticks * US_PER_S * sys_tick);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DPRINT(4, ("fetch_timestamp: system usec network time stamp: %jd.%06ld\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (intmax_t)tvp->tv_sec, (long)tvp->tv_usec));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- nts = tspec_stamp_to_lfp(tval_to_tspec(*tvp));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (intmax_t)tv.tv_sec, (long)tv.tv_usec));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nts = tspec_stamp_to_lfp(tval_to_tspec(tv));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # error "Can't get packet timestamp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ntpd/ntp_timer.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ntpd/ntp_timer.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -13,7 +13,9 @@
#include <signal.h>
#include <unistd.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -723,7 +776,7 @@
</span> leap_smear.enabled = (leap_smear_intv != 0);
#endif
--- ntpd/refclock_local.c.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ntpd/refclock_local.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ntpd/refclock_local.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -158,6 +158,7 @@ local_poll(
* If another process is disciplining the system clock, we set
* the leap bits and quality indicators from the kernel.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -746,8 +799,8 @@
</span> pp->lastref = pp->lastrec;
refclock_receive(peer);
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- ntpfrob/precision.c.orig 2022-12-22 22:08:52.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ntpfrob/precision.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ntpfrob/precision.c.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ntpfrob/precision.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -11,6 +11,7 @@
#include "ntp_types.h"
#include "ntp_calendar.h"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -757,7 +810,7 @@
</span> #define DEFAULT_SYS_PRECISION -99
--- tests/libntp/statestr.c.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ tests/libntp/statestr.c 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/libntp/statestr.c 2023-12-30 22:12:39.000000000 -0800
</span> @@ -4,7 +4,9 @@
#include "unity.h"
#include "unity_fixture.h"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -779,7 +832,7 @@
</span>
// statustoa
--- wafhelpers/bin_test.py.orig 2022-12-22 22:08:52.000000000 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ wafhelpers/bin_test.py 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ wafhelpers/bin_test.py 2023-12-30 22:12:39.000000000 -0800
</span> @@ -103,6 +103,12 @@ def cmd_bin_test(ctx):
if ctx.env['PYTHON_CURSES']:
cmd_map_python.update(cmd_map_python_curses)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -793,8 +846,8 @@
</span> for cmd in sorted(cmd_map):
if not run(cmd, cmd_map[cmd] % version):
fails += 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- wafhelpers/options.py.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ wafhelpers/options.py 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- wafhelpers/options.py.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ wafhelpers/options.py 2023-12-30 22:12:39.000000000 -0800
</span> @@ -23,6 +23,8 @@ def options_cmd(ctx, config):
help="Droproot earlier (breaks SHM and NetBSD).")
grp.add_option('--enable-seccomp', action='store_true',
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -804,9 +857,9 @@
</span> grp.add_option('--disable-mdns-registration', action='store_true',
default=False, help="Disable MDNS registration.")
grp.add_option(
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- wscript.orig 2023-08-02 21:19:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ wscript 2023-08-09 00:16:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -585,7 +585,7 @@ int main(int argc, char **argv) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- wscript.orig 2023-12-28 20:53:56.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ wscript 2023-12-30 22:12:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -587,7 +587,7 @@ int main(int argc, char **argv) {
</span> structures = (
("struct if_laddrconf", ["sys/types.h", "net/if6.h"], False),
("struct if_laddrreq", ["sys/types.h", "net/if6.h"], False),
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -815,7 +868,7 @@
</span> ("struct ntptimeval", ["sys/time.h", "sys/timex.h"], False),
)
for (s, h, r) in structures:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -808,6 +808,21 @@ int main(int argc, char **argv) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -812,6 +812,21 @@ int main(int argc, char **argv) {
</span> ctx.define("ENABLE_FUZZ", 1,
comment="Enable fuzzing low bits of time")
</pre><pre style='margin:0'>
</pre>