Skip to content

TimeSync 0.1.2 — friendly chrony errors + interactive installer

Choose a tag to compare

@vu2cpl vu2cpl released this 09 May 09:22
· 16 commits to main since this release

Two real bugs that surfaced after v0.1.0/v0.1.1 went out:

  1. chronyc exit 1: 506 Cannot talk to daemon when clicking Step Clock — useless to anyone who doesn't already know what 506 means. It happens when chrony is installed but chronyd isn't actually running (the most likely state for someone who downloaded the .app but never ran server/install.sh).
  2. server/install.sh was hardcoded to my LAN, my GPS device's FTDI serial number, and 4800 baud. Anyone else had to edit shell scripts before installing — exactly the friction the script was supposed to remove.

What's fixed

Friendlier chrony errors

  • The privileged helper now searches both Homebrew prefixes for chronyc (/opt/homebrew/bin/ for Apple Silicon, /usr/local/bin/ for Intel)
  • When chronyc returns "Cannot talk to daemon" or 506, the helper translates that into a message pointing the user at server/install.sh, instead of forwarding the raw chronyc output

Setup banner in the menu bar

When chrony is unreachable (not installed, or installed but daemon down), the popover now shows a prominent orange banner at the top with a one-click button to open the setup instructions. The Step Clock button is also disabled while chrony is unreachable — it can't do anything useful in that state anyway.

Interactive server/install.sh

The installer now:

  • Detects your Homebrew prefix automatically (Apple Silicon vs Intel)
  • Scans /dev/cu.usb*, lists candidate GPS devices, asks which one
  • Asks for the baud rate (default 4800)
  • Sniffs the device for 3 s and confirms NMEA is actually present at that combination — catches wrong-device or wrong-baud before installing
  • Detects your LAN subnet from en0 and asks which CIDR to allow
  • Renders customized copies of chrony.conf, gpsd-wrapper.sh, and both LaunchDaemon plists, then installs them

No more editing shell scripts before installing.

Verifying

shasum -a 256 TimeSync-0.1.2.zip
# expect: 51dfac214b837f87ac2ff30b23f92dc2f1a075948b462abf8135c29af9b91b69

unzip TimeSync-0.1.2.zip
spctl -a -vvv TimeSync.app
# expect: source=Notarized Developer ID, accepted

Upgrading

Quit the running TimeSync, drop the new TimeSync.app over the old one in /Applications/, launch.

The helper protocol gained one new method (no breaking changes), but the helper binary changed — to pick up the friendlier error path, force a reload:

sudo launchctl kickstart -k system/com.vu2cpl.TimeSync.Helper

Or just toggle Settings → Helper → Uninstall, then Install again.

73 de Manoj VU2CPL