[ntp:hackers] 4.4 development

Philip Prindeville philipp_subx at redfish-solutions.com
Wed Aug 15 20:45:07 UTC 2018

Hi all,

With 4.2.8p12 being released, we can start thinking about what we want in the next major release.

I’m doing some work that will become more public later, but for now I can reveal some of the changes that support that work or that I’d like to see done otherwise just to pull us into the twenty-tens (which are almost over anyway):

* get rid of all the #ifdef cruft supporting different platforms and different forms of event-driven/asynchronous I/O in ntpd/ntp_io.c and just let libevent do the dispatching and machine-specific parts for us;

* deprecate support for platforms which aren’t being used and may be of dubious value (i.e. Windows XP & Vista, VMS, OSF4 & 5, SCO, Solaris2.5, SunOS3, IRIX, Unicos [SMP], HP-UX 9, NextStep, …) — some of these aren’t even from this millennium.  More more than 1 are PTSD triggers.

* Pivot to OpenSSL 1.1.0x which will have TLS 1.3 support and various other updates, as well as dropping the compatibility library which supports 1.0.n;

* Pivot to Libevent 2.1.5 or later (currently we ship win 2.1.5 in-tree and I don’t like in-tree stuff… it’s a rabbit hole… how many projects include a broken version of libtool in-tree?);

* Pivot to autoconf-2.68 and automake-1.15 or later;

* Update the autotools files accordingly (i.e. use PKG_CHECK_MODULES() for version testing and properly detecting the presence of pkgcfg [.pc] files);

* Various security cleanup, like being smarter about buffers and not using sprintf() and other insecure functions;

* Isolating the Bitkeeper checks into specific scripts invoked by the Makefiles, rather than being *in* the Makefiles, so that this can all be more SCM agnostic;

* General cleanup of the autotools files like places where AC_SUBST() and AC_DEFINE() got interchanged or otherwise confused;

* Fix all bootstrap warnings so that we’re CB-friendly (can you say, “Travis”?);

* Do another round of refactoring to see what [common] code can be moved into libraries;

* Drop Visual Studio 2005 support because anyone still using that should be taken behind the wood shed along with a dull axe;

* Add more test coverage;

* Get rid of concurrent pthread’s or child processes for things like DNS resolution, or reporting back to systemd that we’ve launched and sync’d successfully;

* Agree on a Gold Standard for development (i.e. one of the more up-to-date OSes that tracks all of the other projects we’ll be leveraging);

As well as support whatever protocol development happens.

I thought I’d kick off this conversation.  I understand whatever I suggest someone is going to take issue with it, and that’s okay.  Bring it on.  We’ll get through this and all get to a better place.



More information about the hackers mailing list