LinuxCNC 2.9.9 has been released.

This is a bugfix, feature improvement and security enhancement release.

To address the last part first, it has been noted by two separate people that a weakness in the RTAPI allows for privilege escalation as it runs as setuid root (to give direct access to hardware). Given the use-case for most LinuxCNC machines this is unlilely to be a problem in most cases; most hobby users will have root access anyway. The issue has been patched in both 2.9 and in the development branch.

Abbreviated Changelog:

  • Merge pull request #4190 from tzuohann/check_config-2.9-datatypes
  • Merge pull request #4188 from grandixximo/fix/genclean-soname-2.9
  • Merge pull request #4122 from Sigma1912/2_9_gremlin_initialize_with_current_modal_gcodes
  • Merge pull request #4168 from grandixximo/backport/machine-coord-params-2.9
  • Merge pull request #4176 from hdiethelm/ci_doc_build_2.9
  • check_config: assert INI datatypes before comparing limits
  • Various CI improvements (little user impact)
  • Merge pull request #4166 from grandixximo/fix-4165-emccalib-iniref
  • interp: expose absolute machine position as #5021-#5029
  • emccalib: ignore ini refs embedded in pin names
  • Touchy: Backport updates from master
  • Merge pull request #4164 from grandixximo/backport/3996-tool-offset-params-2.9
  • tests: update tool offset assertions for #5401-#5409 applied semantics
  • docs: G38 probe to machine-coordinate conversion via #5401-#5409
  • interp: make #5401-#5409 the applied tool length offset
  • halscope improvements
  • gremlin: Initialize preview interpreter with active modal gcodes
  • Merge pull request #4022 from wucke13/dev/wucke13/backport-preempt-rt-detection-for-6.12-and-later
  • Merge pull request #4015 from grandixximo/fix/3994-axis-touchoff-jog-2.9
  • axis gui improvements
  • Improvements in Xenomai realtime support
  • Fix rtapi_app: Sanitize name for module addresses
  • radiobutton: A new HAL component to select between mutually-exclusive states
  • halshow: fix broken menu item: Watch -> Add pin/signal/parameter
  • Fix Gmoccapy screen resizing issue #3899
  • rtapi: Refuse to load uspace components missing rtapi_app_exit
  • Merge pull request #3898 from NTULINUX/2.9_libedit
  • Move python3-poppler-qt5 to “Suggests” addresses Debian bug #1129683
  • Move python3-poppler-qt5 to “Recommends”. Issue #3872 addresses Debian bug #1129683
  • Merge pull request #3790 from mark-v-d/2.9 (lathe cycles)
  • hm2_modbus fixes
  • fix: emc/canterp: passing right value for SPINDLE_ORIENTATION
  • Adding testcase for 6bf62870da5866a237bdd8531e28f33644255164 endless loop in g71 fix.
  • If statement should not be nested. This causes the hal component to ignore the enable state of each axis range.
  • qtdragon - various updates
  • gmoccapy - various updates

The full changelog can be found at https://github.com/LinuxCNC/linuxcnc/blob/2.9/debian/changelog

As usual I would like to thank all the LinuxCNC developers and testers, especially the following who contributed directly to this release:

  • Alec Ari
  • Bertho Stultiens
  • BsAtHome
  • CMorley
  • david mueller
  • Hannes Diethelm
  • Hans Unzner
  • Jerry Trantow
  • Luca Toniolo
  • Mark
  • mark-v-d
  • Roy
  • Sean Froome
  • Steffen Moeller
  • tzuohann

The LinuxCNC repositories have been updated for Buster, Bullseye, Bookworm, Trixie and Sid.

Note that released debs are also now available on the LinuxCNC GitHub under “Releases”: www.github.com/https://github.com/LinuxCNC/linuxcnc

Happy Machining!