-
sdwdate-1.0.0-5 Stable
released this
2026-07-11 19:43:32 +02:00 | 2 commits to main since this releasesdwdate (LainOS Layer 02 port) ~ Changelog
1.0.0-5 ~ Hardware clock sync fix
Bug Fix
- Fixed
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/leaprun'during a real sync cycle. Two call sites insdwdate.py(run_sclockadj_and_hwclock()andrun_sclockadj()) shell out toleaprun sdwdate-sync-hwclockafter applying a time correction, to sync the hardware clock (hwclock --systohc) so the correction survives a reboot.leaprunis part of Kicksecure's privleap privilege-delegation tool, not used on LainOS ~ this call site was missed during the initial port (the CLI wrapper'sleapruncall was caught and fixed earlier; these two daemon-internal calls were not). - Fix: patched both call sites to invoke
/usr/bin/hwclock --systohcdirectly. - This surfaced a second, distinct permission issue:
hwclock: ioctl(RTC_SET_TIME) to /dev/rtc to set the time failed: Permission denied./dev/rtc0wasroot-only (0600) with no group access, and even after granting access, theRTC_SET_TIMEioctl itself additionally requires the calling process to holdCAP_SYS_TIMEbeyond plain file permissions. - Fix:
- Added a udev rule (
99-lainos-sdwdate-rtc.rules) granting thesdwdategroup read/write access to/dev/rtc0(mode0660). - Granted
CAP_SYS_TIMEto/usr/bin/hwclockviasetcap, alongside the existing grants forsdwdate,sclockadj, and/bin/date.
- Added a udev rule (
- Verified end-to-end from a clean package install: forced a real 30-second clock discrepancy, triggered a fresh sync, confirmed
sclockadjcompleted,Syncing hardware clocklogged with no error, and the sync loop returned to its normal sleep cycle ~ the full corrected chain, not just a zero-diff no-op.
Downloads
- Fixed