Using Go for NTPsec

Hal Murray halmurray at sonic.net
Fri Jul 9 09:01:16 UTC 2021


> The issue I have is that each time you add code, or James refactors to fix
> bugs, there might be an implicit, untracked, bump in the rustc version
> required.  Although Fedora may be able to keep up, debian-backports, or
> anything but the latest Ubuntu, and certainly Solaris, would remain stuck at
> earlier ntpsec versions, because the toolchain is not available or
> upgradable. 

Before your message arrived, I was thinking about this a bit.  I used your 
message as encouragement to poke around a bit more.

Rust gets distributed in two ways.  One is via the traditional OS/distro 
packaging.  The other is to install the latest stable version in ~/.cargo and 
add ~/.cargo/bin to your search path.  Stable versions are released every 6 
weeks.  They have a script that does the work.  It's one line to copy/paste.

The latest stable worked well enough to run my 66 line hack on most of the 
systems I tried, but that's only various Linux flavors and FreeBSD and NetBSD.

It works on Fedora, Debian, CentOS 7, Alpine Linux and Arch Linux (All 64 bit 
Intel) and 32 and 64 bit ARM for Fedor and Debian/Raspbian and 32 bit Intel 
for Debian.  (Fedora dropped 32 bit Intel.)

It doesn't work on 32 bit Intel for FreeBSD or NetBSD.  64 bit is OK.  I 
didn't try ARM.
(The download script gets a 404.)

Fedora is shipping the current stable.  Debian is far enough behind that my 
code doesn't build.  I assume one of the crates I'm using is too new.  I 
didn't try fixing that.

I didn't try older versions of Fedora or Debian or Ubuntu's LTS versions or 
NetBSD or FreeBSD on ARM.

I don't know anything about Solaris or OSx.

---------

I don't understand Rust's library tangles yet.  I'm pretty sure that if I can 
build it with the stable version in my local directory, then I can run it on a 
similar system without the stable version installed.  The code from the 
libraries/crates is packaged with the runable file so they don't add a tangle 
of .so files that need to be distributed along with the main runable.

That will probably get more complicated when I get far enough to need major 
packages like OpenSSL.  We are already dancing with various OpenSSL versions.  
It's needed to use NTS on some old distro.  I forget which.  The same recipe 
works for Linux, FreeBSD, and NetBSD.  We park the new version of OpenSSL in 
/usr/local/ssl/ and wscript know to check there.

That also allows testing openssl-3.0.0-alpha/beta.



-- 
These are my opinions.  I hate spam.





More information about the devel mailing list