Debian Package Tracker
Register | Log in
Subscribe

linuxcnc

Choose email to subscribe with

general
  • source: linuxcnc (main)
  • version: 1:2.9.9-2
  • maintainer: LinuxCNC Developers (DMD)
  • uploaders: Petter Reinholdtsen [DMD] – Sebastian Kuzminsky [DMD] – Jeff Epler [DMD] – Andy Pugh [DMD]
  • arch: all any
  • std-ver: 4.7.4
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • oldstable: 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u1
  • old-p-u: 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u2
  • stable: 1:2.9.4-2
  • stable-p-u: 1:2.9.4-2+deb13u1
  • unstable: 1:2.9.9-2
versioned links
  • 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u2: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 1:2.9.4-2: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 1:2.9.4-2+deb13u1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 1:2.9.9-2: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • linuxcnc-doc-de
  • linuxcnc-doc-en
  • linuxcnc-doc-es
  • linuxcnc-doc-fr
  • linuxcnc-doc-zh-cn
  • linuxcnc-uspace (3 bugs: 1, 1, 1, 0)
  • linuxcnc-uspace-dev
action needed
Debci reports failed tests high
  • unstable: fail (log)
    The tests ran in 0:02:30
    Last run: 2026-06-30T05:40:11.000Z
    Previous status: unknown

  • testing: fail (log)
    The tests ran in 0:00:18
    Last run: 2026-01-31T13:46:36.000Z
    Previous status: unknown

  • stable: pass (log)
    The tests ran in 0:01:29
    Last run: 2025-11-09T07:26:19.000Z
    Previous status: unknown

Created: 2026-01-31 Last update: 2026-07-04 05:33
A new upstream version is available: 2.9.10 high
A new upstream version 2.9.10 is available, you should consider packaging it.
Created: 2026-07-03 Last update: 2026-07-04 02:00
lintian reports 1 error and 55 warnings high
Lintian reports 1 error and 55 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2026-06-30 Last update: 2026-06-30 09:17
version in VCS is newer than in repository, is it time to upload? normal
vcswatch reports that this package seems to have a new changelog entry (version 1:2.10.0~pre1, distribution UNRELEASED) and new commits in its VCS. You should consider whether it's time to make an upload.

Here are the relevant commit messages:
commit 9bcf8232f019dfb8e2a3578c8356bcd84906bc22
Merge: 31a231f5 2cb7c267
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jul 3 20:52:13 2026 -0400

    Merge pull request #4228 from grandixximo/fix/4216-applied-tlo-params-master
    
    interp: split loaded vs applied tool offset params (#5401-#5409, #5081-#5089)

commit 31a231f5446fc5a0b7289ad51fbcd28563b62aa0
Merge: af6fb80a 2c7397e7
Author: andypugh <andy@bodgesoc.org>
Date:   Sat Jul 4 01:29:25 2026 +0100

    Merge pull request #4229 from BsAtHome/fix_rtai-rtapi-uspace-warning
    
    rtai: fix 'unused' warning when compiled with RTAPI_USPACE

commit af6fb80abc9ecc4ae7866ad1b486587ff42882a8
Merge: 742b1e70 a7567e49
Author: BsAtHome <bertho@vagrearg.org>
Date:   Fri Jul 3 10:14:12 2026 +0200

    Merge pull request #4227 from grandixximo/fix/rtai-submakefile-adoc
    
    build: keep comp manpage adoc rules out of the kbuild pass

commit 2c7397e76867a6357ab4aae9a18d8f805b86f04d
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Fri Jul 3 10:13:36 2026 +0200

    rtai: fix 'unused' warning when compiled with RTAPI_USPACE.

commit 2cb7c26779f49ed4895dbdb96555ae563569f10a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jul 3 09:21:01 2026 +0800

    Revert "tests: update tool offset assertions for #5401-#5409 applied semantics"
    
    This reverts commit 49ddfe633b1bfed7c70a0f7d8d7a1148ea02c456.

commit 7180d286989c6b07d1592dccd15ed19b58ec7e1a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Jul 2 08:09:24 2026 +0800

    interp: split loaded vs applied tool offset params (#5401-#5409, #5081-#5089)
    
    Commit 725231f made #5401-#5409 report the tool length offset actually
    applied to motion. That matched the documentation, but broke probing
    routines in the wild that read #5401-#5409 right after an M6 (without a
    following G43) to get the loaded tool's stored offset. See #4216.
    
    Restore the long-standing behavior of #5401-#5409 and put the applied
    offset in a new parameter set instead:
    
      - #5401-#5409: loaded tool's stored offset, refreshed from the tool
        table on tool change (M6), at startup, and by G10 L1/L10/L11.
        Reverts the convert_setup_tool / set_tool_parameters /
        default_tool_parameters / init_tool_parameters changes from 725231f
        so existing routines keep working.
      - #5081-#5089: tool length offset actually applied to motion, written
        by convert_tool_length_offset for G43, G43Hn, G43.1, G43.2, and
        zeroed by G49. This is the value 725231f intended to expose.
    
    Docs (overview.adoc, g-code.adoc) and the interp_parameter_def.hh enum
    updated to describe both sets.
    
    Fixes #4216. Re-addresses #2994 without the regression.

commit a7567e49a0a817cebf0c4e3c34d1c48fbf011bf8
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jul 3 08:02:25 2026 +0800

    build: keep comp manpage adoc rules out of the kbuild pass
    
    In the KERNELRELEASE (kbuild) pass COMPS is rebuilt from a wildcard that
    mixes hal/components and hal/drivers, so the adoc targets derived from it
    picked up hal/drivers/*.comp entries that fail the hal/components/%.comp
    static pattern rule, breaking RTAI builds. Move the manpage adoc vars and
    rules inside the non-kbuild else branch. Fixes #4226.

commit 742b1e70bf4b0f08f6306d1b041bd96c6d1c9ea1
Merge: 1a52a4aa 5d42f24a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Jul 2 08:46:44 2026 -0400

    Merge pull request #4107 from grandixximo/fix/latency-setuid-warning-4044
    
    latency-test, latency-histogram: add realtime status bar

commit 1a52a4aae70b638d64a285c35e821b676fdac35c
Merge: 78817f30 db73c460
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jul 1 21:30:32 2026 -0400

    Merge pull request #4215 from hdiethelm/hal_lib_fix_export
    
    Fix: hal_lib: Add missing EXPORT_SYMBOL(hal_get_realtime_type)

commit db73c4604c9bd22790b8d8d80f89ff762f5bc41c
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Tue Jun 30 12:04:57 2026 +0200

    hal_lib: Add missing EXPORT_SYMBOL(hal_get_realtime_type)

commit 78817f303a6792d1e8f1912ea0e6e4fea8ff4e45
Merge: 0b47539c 6695f11e
Author: Greg Carl <26096779+snowgoer540@users.noreply.github.com>
Date:   Tue Jun 30 08:46:30 2026 -0400

    Merge pull request #4182 from grandixximo/fix/gcode-editor-undefined-e
    
    qtvcp: fix undefined name in gcode_editor QScintilla import fallback

commit 0b47539cc2b96f551aa8fb7c9a9041b2cfe4357e
Merge: de863df8 f926df1e
Author: Greg Carl <26096779+snowgoer540@users.noreply.github.com>
Date:   Tue Jun 30 08:43:15 2026 -0400

    Merge pull request #4212 from BsAtHome/fix_halcmd-man-formatting
    
    docs: fix halcmd.1 manual page formatting.

commit f926df1eb5da8330023cb0e901a4302c2c273367
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Mon Jun 29 14:46:11 2026 +0200

    docs: fix halcmd.1 manual page formatting.

commit 5d42f24a8ff384f8a364d712cf93bd1879bde79a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 28 09:27:13 2026 +0800

    latency-test, latency-histogram: add realtime status bar
    
    Add a status bar along the bottom of both tools with three fields: the
    running realtime type (or a red "No realtime"), the CPU frequency
    governor, and isolcpus. A field turns red only when it flags a
    condition that makes the measured latency unrepresentative, so normal
    states stay in the theme colour.
    
    The realtime type comes from 'realtime verify', so both tools report
    the authoritative type rtapi_app runs rather than each re-sniffing
    kernel signals. latency-test renders the bar as a pyvcp footer;
    latency-histogram as a Tk status bar, replacing its earlier modal
    "no realtime" popup. The duplicate non-realtime console warning is
    dropped since rtapi_app already prints the actionable note.
    
    docs/install/latency-test.adoc gains a status-bar section explaining
    each field plus a CPU frequency governor tuning note.

commit d6ecb93cde4a8573aa60dc1834d071fbadb8b9db
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 28 09:27:05 2026 +0800

    rtapi_app: return the realtime type name from check_rt
    
    Extend the check_rt result wire format to carry a string alongside the
    int return code, and map the rtapi realtime type enum to a human
    readable name (for example "Preempt RT", "RTAI", "Xenomai" or
    "No realtime"). rtapi_app prints the name on stdout so callers such as
    'realtime verify' and the lcnc_realtime Python module report the
    authoritative realtime type instead of sniffing kernel signals.
    
    Includes review fixups: a short-read check in recv_result(), a
    frame-size underflow guard in recv_result()/recv_args(), an exhaustive
    type-name switch, and typo fixes.
    
    Co-authored-by: Luca Toniolo <toniolo.luca@gmail.com>

commit cf9792b65d7cb850bacfc708066d64b0e9150883
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jun 5 08:38:15 2026 +0800

    latency: detect realtime via 'realtime verify' instead of setuid heuristic
    
    Query realtime status with 'realtime verify' (from #4132) rather than
    probing the setuid bit. latency-histogram asks the realtime layer
    directly; latency-test relies on the existing "POSIX non-realtime" note.

commit c660ab28b4692cc482c9daa8a9c9737b8fc1c0f1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 22:25:37 2026 +0800

    latency: skip RT-privilege warning on non-RT kernels
    
    Only warn under PREEMPT_RT or RTAI; on a non-RT kernel the privileges
    do not matter, so the check would be noise.

commit ce62e654cdc2bfa2336816719e9fda241e74060e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 21:19:51 2026 +0800

    latency-test, latency-histogram: warn when rtapi_app lacks RT privileges
    
    Without 'sudo make setuid' (or 'sudo make setcap') rtapi_app runs
    unprivileged: no SCHED_FIFO, no locked memory, so latency readings are
    wildly inflated and easy to mistake for a code regression. Warn, for a
    non-root user, when rtapi_app is neither setuid root nor carries the
    cap_sys_nice capability.
    
    Closes #4044

commit de863df8b683ca9062b4bc2e8512c324e9e2ffd4
Merge: c6c009e9 6246b2aa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 29 06:21:12 2026 -0400

    Merge pull request #4209 from BsAtHome/fix_libboost_python-versioning
    
    build: Select the libboost_python matching the python version.

commit 6246b2aacb72c4b0971174b08c662fed7b32292f
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Sun Jun 28 16:38:27 2026 +0200

    build: Select the libboost_python matching the python version.

commit c6c009e90c8816dd632a8cf8cdd14a8a8bd496df
Merge: 130f8513 85118312
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 28 22:25:01 2026 -0400

    Merge pull request #4180 from grandixximo/fix/stale-soname-symlink
    
    build: fix stale soname symlink after a library version bump

commit 130f85133cfe07853fb4c220ced901335e557fbb
Merge: 3d22c53f 6da626e7
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 28 22:21:15 2026 -0400

    Merge pull request #4167 from grandixximo/feature/machine-coord-params
    
    interp: expose absolute machine position as #5021-#5029

commit 3d22c53fb0d08231252a6a04ea1a4d00472dcc85
Merge: 1db4ebe2 7dcb6a52
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 28 08:30:22 2026 -0400

    Merge pull request #4207 from hdiethelm/ci_timeout
    
    CI: Set timeouts so it doesn't run forever

commit 7dcb6a52004c5c2f81be3ee32b0a373b582c3875
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 28 13:20:31 2026 +0200

    CI: Set timeouts so it doesn't run forever
    
    Timeout set roughly to 3x the normal runtime and some spare.
    
    This results in 45...74 min.

commit 1db4ebe2b71ded81713c0304aca04d3aa921ece5
Merge: 057ecf6c 168a470f
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 27 04:19:32 2026 -0400

    Merge pull request #4200 from grandixximo/fix/joint-index-enable-edge
    
    motion: drive joint.N.index-enable only on edges (fix #3556)

commit 168a470f9bc4b1d05caecb9c12c589ac5e3067a8
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jun 26 21:48:20 2026 +0800

    motion: drive joint.N.index-enable only on edges
    
    joint.N.index-enable is a HAL_IO pin: homing writes 1 to arm an index
    search, the encoder driver writes 0 to clear it on the index pulse.
    base_write_homing_out_pins wrote it every servo cycle, clamping a pin
    homing does not exclusively own and holding it low after homing finished.
    
    That fights any other writer on the signal. Netting it to
    spindle.N.index-enable breaks G33/G33.1: idle homing overwrites the
    spindle's sync request low and the move rapids instead of waiting for
    the index.
    
    Drive the pin only on homing's own edges (arm on rising, release on
    falling) and otherwise leave it for the encoder to clear.

commit 057ecf6c686a4b31ce5aae3961692815fe9d762c
Merge: 64e7321e 5a7cdcc2
Author: andypugh <andy@bodgesoc.org>
Date:   Fri Jun 26 11:53:50 2026 +0100

    Merge pull request #4157 from grandixximo/docs-image-dedup
    
    docs: deduplicate per-language images into a shared build-time pool

commit 64e7321e5fa767011cae0ce1cbad869e519f85a9
Merge: 9af46f66 ac599f1b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 24 10:15:40 2026 -0400

    Merge pull request #4132 from hdiethelm/halcmd_getrt
    
    Proper and safe evaluation of realtime capability

commit ac599f1be13719bd733a1db5a54bb9f418f1dcf9
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Wed Jun 24 15:41:22 2026 +0200

    pyhal.py: Fix warning: warnings.simplefilter() is global
    
    Instead use FutureWarning which is normaly visible for users

commit 52c64cf6dc0a8cf17f45747cd1bf9e862e7fc5eb
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Tue Jun 16 20:54:26 2026 +0200

    Deprecate is_sim / is_rt and replace by lcnc_realtime.py
    
    lcnc_realtime.verify() should be used instead of hal.is_rt

commit 440a5fd0c00a4d5759777d591ba099ee10f8cec3
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 14 16:48:00 2026 +0200

    Python HAL doc: Document functions that throw a RuntimeError

commit 79e1ddcf7894dfb912e2200e3c30032f08ba6e10
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sat Jun 13 12:20:57 2026 +0200

    Realtime detection: Avoid autoselect of bad options
    
    REALTIME_TYPE_UNKNOWN / REALTIME_TYPE_PREEMPT_DYNAMIC need
    LINUXCNC_FORCE_REALTIME=1 to be set.
    
    These two options are most likely not desired and should not be selected
    automatically.

commit a1c13477aab7d73e19fd518b5f785e3fd4095153
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 7 17:27:09 2026 +0200

    Add hal_get_realtime_type() and update doc on rtapi_is_realtime()
    
    rtapi_is_realtime() was always unreliable and broken for user components
    for some time. It is fixed but only available for rt components now.
    
    hal_get_realtime_type() returns the true running realtime type
    through the HAL for user and realtime components.
    
    This function is also exposed through python hal.
    
    rtapi_app now unloads hal_lib at exit, so everything is cleaned up
    properly and realtime_type is set back to REALTIME_TYPE_UNINITIALIZED.

commit 2852488aaa44b5acdfcad2a63af4426601bfd53f
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 7 16:57:51 2026 +0200

    rtapi_app: Make realtime checks relaiable
    
    The same checks are performed always the same now. If something is not
    properly checked, makeApp() fill fail instead of just chosing a
    different RT implementation by itsself.
    
    New function: rtapi_realtime_type_t rtapi_get_realtime_type(void)

commit d7a87f1ffb882c3e4a9bfd634c63cb7bc2b65a15
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 7 16:40:27 2026 +0200

    Fix python is_rt, is_sim / add verify to realtime / check_rt to rtapi_app
    
    Python is_rt / is_sim now use "realtime verify" which uses
    "rtapi_app check_rt" in uspace / returns true in rtai.
    
    If realtime not running: rtapi_app performs the checks an returns the
    state
    
    If realtime running: rtapi_app calls master to perform the check and
    returns the state

commit 23e88103f6c011353550fdb97160307931ed2b22
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 7 16:25:26 2026 +0200

    Python hal: Add is_initialized()
    
    This helps to check if hal functions can be used or if a component needs
    to be created first.

commit 5a7cdcc2cb1226162dc1b5863d5009c7bf06f924
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jun 19 11:00:57 2026 +0800

    docs: deduplicate per-language images into a shared build-time pool
    
    The HTML build copied every referenced image into all 8 language trees, so
    the built tree was ~324MB, mostly duplicate image bytes. The image resolver,
    previously used only for the PDF build, now runs for HTML too and rewrites
    every image src (and click-to-enlarge link) to a shared pool: a generic image
    to image/<srcrel> and a localized foo_<lang> variant to <lang>/image/<srcrel>,
    where <srcrel> is the path relative to docs/src. .html-images-stamp then
    materialises the pool as real files, one copy per unique image. No post-build
    pass and no symlinks (a server may lack FollowSymLinks). The 8-language tree
    drops to ~120MB.
    
    The page language is passed explicitly as lcnc-lang to both the HTML and PDF
    builds: the Asciidoctor 2.0 CLI has no sourcemap option and the render-tree
    path does not encode the language, so the previous path-based detection was
    unreliable.
    
    This replaces the CI-only dedup-docs.py pass, which is removed.

commit 9af46f663ece039994f4ec42182b45dd780334c6
Merge: 2220e2b6 3d4ef59c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 22 18:34:10 2026 -0400

    Merge pull request #4178 from hdiethelm/ci_htmltest
    
    CI: Check html links for doc

commit 3d4ef59cca8d73d8e1b37d2208298fceb4cfa5f1
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jun 21 21:19:19 2026 +0200

    CI/Docs: Move link check to separate target / script
    
    scripts/htmlcheck.sh does the link checking.
    In CI, this is now a separate step.
    
    Remove link check from makefile and all delete now unused scripts.
    
    docs/src/checklinks.py was not used since some time, removed.

commit 2220e2b6e2bac5f10f54329c546af16eda85b140
Merge: eb64e4e0 9a3bb923
Author: andypugh <andy@bodgesoc.org>
Date:   Mon Jun 22 11:10:51 2026 +0100

    Merge pull request #4177 from grandixximo/fix/docs-toc-margin
    
    docs: fix sidebar scaffold on section-less pages

commit eb64e4e07f9b3d2775ab22d715e80a49f468a6d8
Merge: f744d101 25a4102d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 22 04:48:12 2026 -0400

    Merge pull request #4179 from BsAtHome/fix_null-0-confusion
    
    build: Don't use 0 as NULL/nullptr in pointer compare and assignment

commit f744d1013426cf8cdffd6c12c6a393f337f7d343
Merge: 3917a726 73e6b793
Author: c-morley <c-morley@users.noreply.github.com>
Date:   Sun Jun 21 09:14:13 2026 -0700

    Merge pull request #4189 from grandixximo/fix/qtvcp-early-signal-handlers
    
    qtvcp: arm terminate/interrupt handlers before screen construction

commit 3917a7266ef51e295ede95331d7035e2355bb09d
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Sat Jun 20 11:18:24 2026 -0700

    qtvcp -mdi_line/history: make the history file if not found
    
    If the INI defined file is not found, make the file.
    Also add some debug info

commit 73e6b793136cb51f198e391118cf8fa743cdf62e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 20 21:32:55 2026 +0800

    qtvcp: arm terminate/interrupt handlers before screen construction
    
    The handlers were installed only just before the event loop, after
    construction. SIGINT's default handler raises KeyboardInterrupt, so an
    interrupt during construction became an unhandled exception (headless, it
    hung on the error dialog). Install them right after QApplication is created;
    before the loop runs a signal does a clean shutdown and exit, once running
    it quits the loop as before.

commit 6695f11e9bfdc9fadfc5073d6984b9c9382ecded
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 20 10:17:51 2026 +0800

    qtvcp: fix undefined name in gcode_editor Qsci import fallback
    
    The PyQt5 branch of the QScintilla import fallback caught ImportError
    without binding it (no 'as e') but then passed exc_info=e to LOG.critical,
    raising NameError. Because sys.excepthook is installed at qtvcp startup and
    pops a modal error dialog, that NameError turns a missing python3-pyqt5.qsci
    into an indefinite hang (the dialog blocks forever under headless/CI) instead
    of a clean exit.
    
    Bind the exception as e and sys.exit(1), matching the PyQt6 branch below.

commit 85118312a4067ba82b56181868607c224a792cba
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 20 09:30:29 2026 +0800

    build: fix stale soname symlink after a library version bump
    
    When a shared library's soname is bumped (e.g. liblinuxcncini.so.0 ->
    .so.1), incremental trees keep the old .so.0 on disk. The generic
    ../lib/%.so symlink has two pattern rules in src/Makefile (matching
    %.so.0 and %.so.1, .so.0 listed first), so make repoints the dev symlink
    at the stale .so.0. Everything then links against the old library and
    fails with undefined symbols (e.g. IniFile::mapLinearUnits), breaking the
    python module, linuxcnc_check_ini and startup. Clean builds are immune,
    so CI never sees it; only incremental builders across the bump are hit.
    make clean did not help either: .so.0 is no longer in TARGETS, so
    rm -f $(TARGETS) leaves it behind.
    
    Fixes:
    - liblinuxcncini.so.1 rule removes any leftover .so.[0-9]* sibling.
    - Add an explicit liblinuxcncini.so -> .so.1 symlink rule. Explicit rules
      override the ambiguous pattern pair, so the symlink repoints to the
      current soname in a single build pass (the rm alone self-heals only on
      a second make).
    - genclean also removes ../lib/*.so.[0-9]* so stale versioned libraries
      no longer survive make clean.

commit 25a4102d257d42edee122d44cd7f459870beaa82
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Sat Jun 20 00:09:25 2026 +0200

    build: Don't use 0 as NULL/nullptr in pointer compare and assignment.

commit 9a3bb92374986f7512d1b837124d6a70bab7eeee
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jun 19 09:06:52 2026 +0800

    docs: fix sidebar scaffold on section-less pages
    
    Body-class regex required class right after <body>, but pages with a
    title anchor emit <body id=... class=...>, so toc2 toc-left was never
    added. Section-less pages (pci-parallel-port, mpg) lost the left margin
    and TOC arrows. Match attrs before class.

commit 853878be8a5e8b5290b8397850eb2a040b31edfa
Merge: ac00efde e49c4214
Author: andypugh <andy@bodgesoc.org>
Date:   Thu Jun 18 14:28:09 2026 +0100

    Merge pull request #4150 from hdiethelm/ci_doc_build
    
    CI: htmldoc artifacts and package

commit ac00efdebcfc4d35ab5cfd8839e901263bbd76dd
Merge: 77e9f58b 4eff8114
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 17 23:25:34 2026 -0400

    Merge pull request #4174 from grandixximo/fix/en-cssrel
    
    docs(build): fix English HTML stylesheet path one level too shallow

commit 4eff811485a620f035601633d2c0db37d05f4989
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Jun 18 10:11:42 2026 +0800

    docs(build): fix English HTML stylesheet path one level too shallow
    
    English renders from build/adoc/en with a stem that omits the en/ prefix,
    so the cssrel rule emits ../ instead of ../../ and the pages load a
    nonexistent en/asciidoctor.css and render unstyled. Add an en-specific
    rule with the +1. Translated languages and man pages were already correct.

commit e49c42143c57b8906ae81e36966cb508f1cfe00f
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Wed Jun 17 21:46:21 2026 +0200

    CI: Upload doc as tar

commit 77e9f58b38fde529971cd52b292d0b67e75234af
Merge: 2be516b1 717a7d43
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 17 01:24:01 2026 -0400

    Merge pull request #4173 from grandixximo/cherry-4166-emccalib-master
    
    emccalib: ignore ini refs embedded in pin names (cherry-pick of #4166)

commit 717a7d435477e57403a16a15c68ddf7892993b1a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 15 09:36:09 2026 +0800

    emccalib: ignore ini refs embedded in pin names
    
    Only treat a setp line as tunable when the ini reference is the value
    being set, not when it appears inside the pin name.  Fixes the invalid
    widget name crash in the calibration tool (issue #4165).

commit 2be516b13ba9e5d5ed5e10f1afce3b94ed50428a
Merge: 59c5a73e 5277e322
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 16 06:40:34 2026 -0400

    Merge pull request #4140 from NTULINUX/system-tclpath
    
    Drop the need for exporting TCLLIBPATH, use system path [v2]

commit 59c5a73e64363bdad13460b34a8b1354f3674090
Merge: 175bf47a 5508fa6e
Author: BsAtHome <bertho@vagrearg.org>
Date:   Tue Jun 16 09:34:58 2026 +0200

    Merge pull request #4171 from grandixximo/fix/4169-finally-return
    
    qtvcp: move return out of finally in SAVE_PROGRAM

commit 5508fa6e246b9802b7470c07f880ca4894ead9a2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 16 10:58:50 2026 +0800

    qtvcp: move return out of finally in SAVE_PROGRAM
    
    return npath sat inside the finally block, which silently overrode the
    except branch's return None. SAVE_PROGRAM therefore returned a valid
    looking path even when the write failed, swallowing the exception.
    Dedenting it to the method body restores the intended error semantics
    and clears the SyntaxWarning Python 3.14 emits for return in finally.
    
    Fixes #4169.

commit 175bf47aed99658566008c6d0e1378e23c9c1019
Merge: c1f4b6cd 23f7546e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 15 22:08:15 2026 -0400

    Merge pull request #4170 from grandixximo/touchy-min-height
    
    touchy: open at a sensible minimum window height

commit 23f7546e1f3e98fc863a7382463feb550d52c838
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 16 10:01:00 2026 +0800

    touchy: open at a sensible minimum window height
    
    Touchy sizes its window to the active notebook tab's preferred size
    on first map. The Startup tab is the smallest of the six (just the
    MPG wheel and Cycle Start), so the window opens around 984 by 274
    pixels and the other tabs (Status, Auto, Preferences) are clipped
    until the user resizes manually.
    
    Floor the initial height at 500 pixels in _fit_to_monitor's default
    branch so all tabs are usable out of the box, capped at the work
    area so we never open off-screen. A 600 pixel touchscreen panel
    with a top and bottom bar still has the room; on a smaller display
    the existing monitor cap keeps the window on-screen. The minimum
    size request is untouched, so the user can still resize smaller.

commit 6da626e737a3410b4d71b11a72c1e70202ea5aec
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 15 09:37:57 2026 +0800

    interp: expose absolute machine position as #5021-#5029
    
    Add a machine-coordinate current-position parameter set, matching the
    layout used by other controllers. Reading machine coordinates
    previously required either summing the individual offset registers by
    formula or the G30.1 trick (which writes the absolute position into
    #5181-#5186).
    
    #5021-#5029 hold the current absolute machine position (G53 frame) for
    X Y Z A B C U V W, in the current program units, with no coordinate
    system, G92/G52 or tool length offset applied. They are read-only and
    volatile, filled each line alongside #5420-#5428 and not persisted to
    the var file.
    
    This is the same value already available as the #<_abs_*> named
    parameters, which until now existed only for X Y Z A B C; the U V W
    named parameters (#<_abs_u>, #<_abs_v>, #<_abs_w>) are added to match.
    
    The shared computation is factored into get_abs_position().

commit 5277e322a23752e5e3f0d220470307964e171e44
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 15 08:24:27 2026 +0800

    system-tclpath: fix package build and nf.EMC2_TCL_DIR
    
    - nf.py.in: expose EMC2_TCL_DIR so rs274/options.py can read it
      (fixes 'module nf has no attribute EMC2_TCL_DIR' at runtime)
    - control.top.in: build-depend on tcl for /usr/bin/tclsh; src/configure
      queries tcl_pkgPath in override_dh_auto_configure, which runs after
      build-deps, so no bootstrap issue
    - configure.ac: stop the install branch from clobbering EMC2_TCL_DIR set
      by --with-tcl-dir

commit 78da77a9daab18b382fd3a36d7d029758f9ca715
Author: Alec Ari <neotheuser@ymail.com>
Date:   Mon Jun 8 09:24:23 2026 -0500

    Drop the need for exporting TCLLIBPATH, use system path
    
    Signed-off-by: Alec Ari <neotheuser@ymail.com>

commit c1f4b6cd7d6b373176a6a1d7e5253048b481a531
Merge: 75c139ed f57448c1
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Jun 14 16:08:11 2026 +0100

    Merge pull request #4160 from grandixximo/spindle-atspeed-m5
    
    motion: wait for spindle at-speed after M5 spindle stop

commit 75c139ed435d7c70f39c8b6d43cb24740dfdfbb4
Merge: 1ed052dc e8880684
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Jun 14 15:37:40 2026 +0100

    Merge branch '2.9'
    using -s ours, should a no-op

commit e8880684076c8f8275b9e92dfda81c0bc37dcdac
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Jun 14 14:56:01 2026 +0100

    Touchy: Backport updates from master

commit 030a8498acb0982365fb370572925a9d558ded11
Merge: c7b37d0f c52992c9
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Jun 14 14:38:28 2026 +0100

    Merge pull request #4164 from grandixximo/backport/3996-tool-offset-params-2.9
    
    Backport #3996: make #5401-#5409 the applied tool length offset (2.9)

commit 1ed052dc993d750b1073deb1560e3b529eee8dbd
Merge: 51c6c859 c4feaae7
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Jun 14 14:38:09 2026 +0100

    Merge pull request #4163 from grandixximo/docs/g38-machine-coords
    
    docs: G38 probe to machine-coordinate conversion via #5401-#5409

commit 51c6c8597e9617e3430b025e91c42286b75fd070
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun Jun 14 09:48:05 2026 +0200

    docs: halshow - add some explanations to settings

commit c2df0ecf9cee03ce5be8bebc74731610dc39ea67
Merge: 4ad4ab41 2e8186c1
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun Jun 14 09:34:01 2026 +0200

    Merge pull request #4162 from grandixximo/halshow-docs-no-new29
    
    docs: drop 'New in 2.9' framing from halshow page

commit 4ad4ab4116e08b3476fb51c806e608dcf679eac3
Merge: 48094453 f9b04696
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun Jun 14 09:33:50 2026 +0200

    Merge pull request #4147 from grandixximo/halshow-merged-tree
    
    halshow: show pins and parameters in one tree

commit 48094453d311e24b9ec6c4aa9597ebf554421ee2
Merge: 935bc405 aada1178
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun Jun 14 09:21:32 2026 +0200

    Merge pull request #4133 from grandixximo/touchy-override-font
    
    touchy: replace deprecated font and colour overrides with CSS

commit c52992c9439ec3e00a4819c80f7fda64a890bfaa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 09:29:38 2026 +0800

    tests: update tool offset assertions for #5401-#5409 applied semantics
    
    Eight tests in tests/interp/g10/, tests/t0/ and tests/toolchanger/
    asserted the old behavior of #5401-#5409 (rewritten by M6 / G10 /
    init from the loaded tool's stored offsets). Under the new applied
    semantics they need to check the offset only after G43 (or check
    that #5401-#5409 are unchanged when only M6 / G10 has run).
    
    Expected outputs regenerated on the 2.9 tree.
    
    (cherry picked from commit 49ddfe633b)

commit 518869861bb4dffeb7943e0eebfc3b3158ac52a6
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 09:15:35 2026 +0800

    docs: G38 probe to machine-coordinate conversion via #5401-#5409
    
    Document the official way to recover the absolute machine coordinate of
    a probe from #5061-#5069. Since #3996, #5401-#5409 report the applied
    tool length offset, so the conversion works with or without an active
    tool offset and does not require cancelling it with G49 first.
    
    Refs #4159

commit f57448c1c9d9456ff1cc1d53736e33c3a029f40d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 09:55:10 2026 +0800

    tests: match STOP_SPINDLE_TURNING stub to 2-arg signature

commit aada1178e8aec915c4364e89cec5088e59f12b31
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 09:08:42 2026 +0800

    touchy: rename _tag to _add_style_class
    
    Per review on #4133: a more descriptive name for the helper that
    adds a style class once. No behavior change.

commit 901c82167a3d8ea956eef671a2f98cbf8f2a0a55
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 8 13:13:09 2026 +0800

    touchy: fix invalid default DRO font that triggers a CSS warning
    
    The default dro_font "FreeMono 10 Pitch Bold 16" parses to the Pango
    family "FreeMono 10 Pitch". The preference font buttons use
    use-font=True, so GtkFontButton renders its label in that font and
    emits the family as unquoted CSS, which GTK rejects with
    "Junk at end of value for font-family" (the parse warning in #4068).
    
    "FreeMono 10 Pitch" is not a real family (Pango already fell back to
    monospace), so drop the legacy "10 Pitch" token and default to
    "FreeMono Bold 16". On a fresh profile this clears the warning.

commit 034f0b1af1b7954de425581f07a99d1b2d3a77b3
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Jun 5 16:35:45 2026 +0800

    touchy: replace deprecated font and colour overrides with CSS
    
    GTK deprecated Gtk.Widget.override_font() and modify_fg() in 3.16. Touchy
    used them throughout setfont() to set every display font and the
    per-coordinate DRO text colours, logging deprecation warnings.
    
    Tag the widgets with style classes once and drive the fonts and colours
    from a single GtkCssProvider on the screen, rebuilt whenever a font or
    colour preference changes. A Pango font description is translated to CSS
    font properties and stored colours are normalised through Gdk.RGBA. The
    rendered result is unchanged.
    
    The modify_bg() calls in filechooser, listing and mdi are a separate
    selection-highlight pattern and are left for a follow-up.

commit 725231f348c374816074be25cde3fd8e55ef030d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon May 4 09:50:32 2026 +0800

    interp: make #5401-#5409 the applied tool length offset
    
    Parameters #5401-#5409 now reflect the tool length offset actually
    applied to motion, matching the long-standing documentation ("Set by
    G43") and the equivalent Fanuc #5081-#5088 / Haas #5081-#5086
    semantics.
    
    Previously they were rewritten on M6, G10 L1/L10/L11, and startup
    from the loaded tool's stored offsets, while G43Hn (n != loaded tool),
    G43.1, and G43.2 never updated them. Reading #5401-#5409 therefore
    did not tell the program what offset was in effect.
    
    Now:
      - convert_tool_length_offset writes the applied tool_offset for
        G43, G43Hn (any n), G43.1, G43.2, and G49 (zeroed).
      - set_tool_parameters / default_tool_parameters / init_tool_parameters
        no longer touch #5401-#5409. M6 changes the loaded tool but
        does not by itself apply its offset.
      - convert_setup_tool (G10 L1/L10/L11) no longer touches them either.
      - #5400 (toolno) and #5410-#5413 (diameter, angles, orientation)
        still update on M6 / G10 / startup as before.
    
    Doc note in overview.adoc updated to match.
    
    Fixes #2994

commit c4feaae79bc0b323c862766257cb1ff393112187
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 09:15:35 2026 +0800

    docs: G38 probe to machine-coordinate conversion via #5401-#5409
    
    Document the official way to recover the absolute machine coordinate of
    a probe from #5061-#5069. Since #3996, #5401-#5409 report the applied
    tool length offset, so the conversion works with or without an active
    tool offset and does not require cancelling it with G49 first.
    
    Refs #4159

commit 344395efd9ea70de91be8435d2d35bf775a4c8d0
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 08:34:49 2026 +0800

    motion: make G38.n probe wait for spindle at-speed
    
    The probe command path (EMCMOT_PROBE) passed atspeed=0 to tpAddLine, so a
    probe never waited for spindle.N.at-speed even when a preceding M3/M4/M5
    armed the barrier. A probe directly after M5 (or M3) started immediately.
    
    Honor atspeed_next_feed in EMCMOT_PROBE the same way EMCMOT_SET_LINE does,
    so G38.n behaves like G1: it waits for spin-up after M3 and for stop after
    M5, and does not wait when no spindle change is pending.

commit 2e8186c1069217954e07036eb0afd2ef6212ccff
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Jun 14 08:34:18 2026 +0800

    docs: drop 'New in 2.9' framing from halshow page

commit f9b046961d2dcaace9039ce7f3b12e6b91051509
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 13 21:28:18 2026 +0800

    halshow: move separate-parameters toggle to settings tab, document
    
    Move the 'Separate parameters' option out of the Tree View menu, where
    it was hard to find, into the Settings tab as a persistent checkbox
    alongside the other settings. It applies on Apply and is saved between
    sessions like the rest. Document the merged tree and the setting, and
    refresh the halshow screenshots to show the combined Pins & Parameters
    branch.

commit 935bc4050e80a2bf1dce32693e5dd2e0d1e7f18b
Merge: 9a49a766 d788af28
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sat Jun 13 15:10:41 2026 +0200

    Merge pull request #4148 from grandixximo/fix-ini-missing-file-message
    
    scripts: report missing INI file before parse check

commit 203abbf46f9c7d12b737d2523ec1432f1b721561
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 13 20:18:02 2026 +0800

    motion: wait for spindle at-speed after M5 spindle stop
    
    M5 now arms the at-speed barrier like M3/M4, so the next feed/probe
    move waits until spindle.N.at-speed reflects the stopped state. The
    at-speed pin defaults to 1, so unwired configs are unaffected.
    
    On abort, if motion was held waiting for at-speed after a stop, emit a
    loud UI message hinting that spindle.N.at-speed is not wired or does not
    go true when stopped, and clear the pending barrier so it can't strand a
    later move.

commit cd413645c1c98cebce857c86896b0b9601941879
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sat Jun 13 10:25:11 2026 +0200

    Remove executable flag from images
    
    There is no reason to have images executable

commit 4943713a922713dcd8ba0beccbdb44f03ac29ffe
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Wed Jun 10 17:26:10 2026 +0200

    CI: Allow fail on sid
    
    The sid build shows still failed but other packages are built.

commit 366e4de4b45556cd24fe803d2b23caa2a9cc6874
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Wed Jun 10 13:30:12 2026 +0200

    CI: Add artefacts to doc

commit 9a49a76624ae32c891f32889789beae3686a40fa
Merge: 5daf12cf 0a6c9141
Author: andypugh <andy@bodgesoc.org>
Date:   Fri Jun 12 18:31:03 2026 +0100

    Merge pull request #4151 from grandixximo/touchy-no-pane-resize
    
    touchy: stop MDI, listing and file panes resizing with content

commit 5daf12cf987a35fbd0a1e0043f1204e649541509
Merge: 963f2f87 d631e8b1
Author: BsAtHome <bertho@vagrearg.org>
Date:   Fri Jun 12 10:59:56 2026 +0200

    Merge pull request #4146 from grandixximo/fix-ui-smoke-sudo
    
    ui-smoke: never sudo in crash capture

commit 963f2f873433c37c637390e75059d35685c5726b
Merge: 7565f7ad 313ad99e
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Fri Jun 12 09:14:55 2026 +0200

    Merge pull request #4153 from grandixximo/remove-docs-comp
    
    Remove .comp files from docs/src

commit 313ad99ec45c808fd2033d0d432e29d914a89769
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Jun 11 11:09:27 2026 +0800

    tests: move rand.comp out of docs/src, drop unused out8.comp
    
    Both files duplicate examples already inlined in docs/src/hal/comp.adoc
    and are not part of the docs build. rand.comp is only used to generate
    the halcompile/userspace test input, so move it next to that test.
    out8.comp is referenced nowhere; delete it.
    
    Fixes #4145

commit 0a6c914136d9fdf45a7d2c641ba1a7ec2af64971
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 10 18:45:19 2026 +0800

    touchy: stop MDI, listing and file panes resizing with content
    
    The MDI word labels, the G-code listing and the file chooser names
    grow with their text, so typing a long number resized the number pad
    pane and a long G-code line pushed the page/start-point controls out
    of view. Wrap each of those label columns in a horizontal scroller
    (with the existing drag-to-pan) so long content scrolls in place and
    the layout never moves.

commit 5226f3ddfe776dc47db52c28bb2b88ec8388e92b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 10 18:45:19 2026 +0800

    touchy: let a saved window geometry win over fit-to-monitor
    
    The map-time resize to the content's natural size overrode a
    user-saved window_geometry preference, so the saved size was never
    honored. Skip the natural-size resize when an explicit geometry is
    set; the scroller still bounds the window to the work area.

commit e2fc45e03b69cd516cfc9c41f8775bdb0948b56d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 10 18:45:19 2026 +0800

    touchy: fix maximize with a saved window geometry
    
    window.maximize() is a GTK2 leftover; a GTK3 GtkWindow has no .window
    attribute, so starting with window_geometry and window_force_max set in
    ~/.touchy_preferences crashed at startup. Call maximize() on the window
    itself, as the default-geometry path already does.

commit d788af28b7c07bc8357a8d15d1d011540382d828
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 10 16:22:40 2026 +0800

    fix(scripts): report missing INI file before parse check
    
    inivalue parse check ran before the file-existence check, so a
    nonexistent INI file was reported as "The INI-file contains errors
    that need to be fixed". Move the existence check ahead of the parse
    check and drop the now-redundant later copy.

commit c8586c9ed3e4ac0c89889c89b57ccb4c5c22b787
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 10 14:16:45 2026 +0800

    halshow: show pins and parameters in one tree
    
    Pin and parameter names share one namespace, so present them in a
    single 'Pins & Parameters' tree. Leaf node ids keep the real type
    (pin+/param+) so show, watch and popup handlers work unchanged;
    param leaves use the watch-tab param color. A 'Separate parameters'
    checkbox in the Tree View menu (saved in preferences) restores the
    old layout.

commit 7565f7adccb5ed4f26bd518b21d87c708e0a9276
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Tue Jun 9 19:07:08 2026 -0700

    qtvcp -screen_options: default to a 10 second screen close delay
    
    Can be reset from the preference file

commit a12f75f0c38c9b535d573d00d35f184a111b65ed
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Tue Jun 9 18:59:18 2026 -0700

    qtdragon -update QSS for spindle/max  velocity override slider warnings

commit 1f192d5ae5a3c3a22b4a6e5253b270a94aefe9c8
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Tue Jun 9 18:55:17 2026 -0700

    qtdragon -fix regressions 50/100 override buttons
    
    50/100 "max velocity override" buttons and the slider haven't been working.
    It turned out the connections (signals/slots) had disappeared.
    Fixed the problem and also tweaked some minor things.
    The red LEDs in the two axis buttons were red instead of pink,
    like the other buttons.
    I removed the blank pages on the 4th and 5th axis buttons.
    
    Thanks MarkoPolo!

commit d631e8b1c696fdf7eefe91aa21bb4d554ef4dd17
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 10 09:39:50 2026 +0800

    ui-smoke: never sudo in crash capture
    
    crashdump_arm ran `sudo sysctl` to set kernel.core_pattern, assuming
    passwordless sudo on CI. On a local run without it, sudo prompts for a
    password and stalls the whole suite until interrupted. Only adjust
    core_pattern (and apt-get gdb) when already root; non-root falls back
    to a cwd core. The tests now run unattended everywhere.
    
    Fixes #4143
Created: 2025-03-16 Last update: 2026-07-04 05:32
1 bug tagged patch in the BTS normal
The BTS contains patches fixing 1 bug, consider including or untagging them.
Created: 2026-06-02 Last update: 2026-07-04 05:30
Depends on packages which need a new maintainer normal
The packages that linuxcnc depends on which need a new maintainer are:
  • dblatex (#942402)
    • Build-Depends-Indep: dblatex
  • docbook-xsl (#802370)
    • Build-Depends: docbook-xsl
Created: 2022-02-27 Last update: 2026-07-04 05:00
1 low-priority security issue in trixie low

There is 1 open security issue in trixie.

1 issue left for the package maintainer to handle:
  • CVE-2026-58302: (needs triaging) rtapi_app in linuxcnc-uspace in LinuxCNC before 2.9.9 allows privilege escalation. It is installed SUID root and loads shared library modules via dlopen() by using a user-supplied module name. Insufficient validation of the module name allows path traversal, enabling an unprivileged local user to load an arbitrary shared library. Because the process retains elevated privileges during module loading, this results in local privilege escalation to root.

You can find information about how to handle this issue in the security team's documentation.

Created: 2026-06-28 Last update: 2026-06-30 06:30
testing migrations
  • This package is part of the ongoing testing transition known as auto-upperlimit-python3. Please avoid uploads unrelated to this transition, they would likely delay it and require supplementary work from the release managers. On the other hand, if your package has problems preventing it to migrate to testing, please fix them as soon as possible. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
  • excuses:
    • Migrates after: python3-defaults
    • Migration status for linuxcnc (- to 1:2.9.9-2): BLOCKED: Rejected/violates migration policy/introduces a regression
    • Issues preventing migration:
    • ∙ ∙ Updating linuxcnc would introduce bugs in testing: #1089809
    • ∙ ∙ Autopkgtest for linuxcnc/1:2.9.9-2: amd64: Failed ♻, arm64: Failed ♻, armhf: Failed ♻, i386: Failed ♻
    • ∙ ∙ New but not reproduced on amd64 - info: linuxcnc-doc-de, linuxcnc-doc-en, linuxcnc-doc-es, linuxcnc-doc-fr, linuxcnc-doc-zh-cn, linuxcnc-uspace
    • ∙ ∙ New but not reproduced on arm64 - info: linuxcnc-doc-de, linuxcnc-doc-en, linuxcnc-doc-es, linuxcnc-doc-fr, linuxcnc-doc-zh-cn, linuxcnc-uspace
    • ∙ ∙ New but not reproduced on armhf - info: linuxcnc-doc-de, linuxcnc-doc-en, linuxcnc-doc-es, linuxcnc-doc-fr, linuxcnc-doc-zh-cn, linuxcnc-uspace
    • ∙ ∙ New but not reproduced on i386 - info: linuxcnc-doc-de, linuxcnc-doc-en, linuxcnc-doc-es, linuxcnc-doc-fr, linuxcnc-doc-zh-cn, linuxcnc-uspace
    • ∙ ∙ Depends: linuxcnc python3-defaults (not considered)
    • Additional info (not blocking):
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/l/linuxcnc.html
    • ∙ ∙ 5 days old (needed 5 days)
    • Not considered
news
[rss feed]
  • [2026-06-30] Accepted linuxcnc 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u2 (source) into oldstable-proposed-updates (Debian FTP Masters) (signed by: Petter Reinholdtsen)
  • [2026-06-30] Accepted linuxcnc 1:2.9.4-2+deb13u1 (source) into proposed-updates (Debian FTP Masters) (signed by: Petter Reinholdtsen)
  • [2026-06-28] Accepted linuxcnc 1:2.9.9-2 (source) into unstable (Petter Reinholdtsen)
  • [2026-06-27] Accepted linuxcnc 1:2.9.9-1 (source) into unstable (Petter Reinholdtsen)
  • [2026-01-25] linuxcnc REMOVED from testing (Debian testing watch)
  • [2025-11-11] linuxcnc 1:2.9.7-1 MIGRATED to testing (Debian testing watch)
  • [2025-11-03] Accepted linuxcnc 1:2.9.7-1 (source) into unstable (andypugh) (signed by: Steffen Moeller)
  • [2025-05-20] linuxcnc 1:2.9.4-2 MIGRATED to testing (Debian testing watch)
  • [2025-04-13] Accepted linuxcnc 1:2.9.4-2 (source) into unstable (Steffen Moeller)
  • [2025-03-15] Accepted linuxcnc 1:2.9.4-1 (source) into unstable (Steffen Moeller)
  • [2025-03-11] linuxcnc REMOVED from testing (Debian testing watch)
  • [2025-01-31] linuxcnc 2.9.3-2 MIGRATED to testing (Debian testing watch)
  • [2025-01-27] Accepted linuxcnc 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u1 (source) into proposed-updates (Debian FTP Masters) (signed by: Petter Reinholdtsen)
  • [2025-01-26] Accepted linuxcnc 2.9.3-2 (source) into unstable (Petter Reinholdtsen)
  • [2025-01-20] linuxcnc REMOVED from testing (Debian testing watch)
  • [2024-07-09] linuxcnc 2.9.3-1 MIGRATED to testing (Debian testing watch)
  • [2024-07-07] Accepted linuxcnc 2.9.3-1 (source) into unstable (Petter Reinholdtsen)
  • [2023-12-28] linuxcnc REMOVED from testing (Debian testing watch)
  • [2023-11-06] Accepted linuxcnc 2.9.1-2 (source) into unstable (Steffen Moeller)
  • [2023-10-26] Accepted linuxcnc 2.9.1-1 (source) into unstable (Andy Pugh) (signed by: Steffen Moeller)
  • [2023-02-13] linuxcnc 2.9.0~pre1+git20230208.f1270d6ed7-1 MIGRATED to testing (Debian testing watch)
  • [2023-02-10] Accepted linuxcnc 2.9.0~pre1+git20230208.f1270d6ed7-1 (source) into unstable (Sebastian Kuzminsky) (signed by: Petter Reinholdtsen)
  • [2022-11-11] linuxcnc 2.9.0~pre0+git20221105.ffb6bda926-1.2 MIGRATED to testing (Debian testing watch)
  • [2022-11-08] Accepted linuxcnc 2.9.0~pre0+git20221105.ffb6bda926-1.2 (source) into unstable (Petter Reinholdtsen)
  • [2022-11-08] Accepted linuxcnc 2.9.0~pre0+git20221105.ffb6bda926-1.1 (source) into unstable (Petter Reinholdtsen)
  • [2022-11-06] Accepted linuxcnc 2.9.0~pre0+git20221105.ffb6bda926-1 (source) into unstable (Sebastian Kuzminsky) (signed by: Petter Reinholdtsen)
  • [2022-09-12] linuxcnc 2.9.0~pre0+git20220906.02744cdef6-1 MIGRATED to testing (Debian testing watch)
  • [2022-07-15] linuxcnc 2.9.0~pre0+git20220402.2500863908-4 MIGRATED to testing (Debian testing watch)
  • [2022-07-14] linuxcnc REMOVED from testing (Debian testing watch)
  • [2022-07-14] linuxcnc REMOVED from testing (Debian testing watch)
  • 1
  • 2
bugs [bug history graph]
  • all: 8
  • RC: 1
  • I&N: 4
  • M&W: 3
  • F&P: 0
  • patch: 1
links
  • homepage
  • lintian (1, 55)
  • buildd: logs, cross
  • popcon
  • browse source code
  • other distros
  • security tracker
  • l10n (-, 9)
  • debci
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 1:2.9.4-2ubuntu4

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing