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+deb12u2
  • old-p-u: 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u2
  • stable: 1:2.9.4-2+deb13u1
  • unstable: 1:2.9.9-2
versioned links
  • 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+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:04:28
    Last run: 2026-08-13T03:20:58.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:33
    Last run: 2026-07-15T20:01:47.000Z
    Previous status: unknown

Created: 2026-01-31 Last update: 2026-08-17 11:04
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-08-17 10: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
The package has not entered testing even though the delay is over normal
The package has not entered testing even though the 5-day delay is over. Check why.
Created: 2026-07-04 Last update: 2026-08-17 11:01
1 bug tagged patch in the BTS normal
The BTS contains patches fixing 1 bug, consider including or untagging them.
Created: 2026-08-15 Last update: 2026-08-17 10: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-08-17 09:01
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 5ee1ecefa8f2e9070d65a2f190e5f0a102807fea
Merge: d19b5bd9 556fd7b6
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 16 20:24:55 2026 +0800

    Merge pull request #4392 from grandixximo/dead-motion-cmds
    
    motion: remove dead commands ENABLE_WATCHDOG, DISABLE_WATCHDOG, SET_TELEOP_VECTOR

commit d19b5bd985e31225f395dd9f7816b8937682bbc8
Merge: 5cb34168 ac15ce8a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 16 20:24:06 2026 +0800

    Merge pull request #4390 from grandixximo/jerk-fallback-warn
    
    ini: warn when PLANNER_TYPE=1 falls back to trapezoidal due to low jerk

commit 556fd7b6c9abec874b01f8f25c13e4efae76bc94
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 16 19:27:37 2026 +0800

    motion: remove dead commands ENABLE_WATCHDOG, DISABLE_WATCHDOG, SET_TELEOP_VECTOR
    
    No handler in command.c, no sender anywhere in the tree; the only
    references were unreachable log cases in motion-logger.c. Remove the
    enum entries, the logger cases, and the Code Notes sections that
    documented them. Fixes #4359.

commit ac15ce8a624b8714002992f693a6c17961c7af67
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 16 18:29:26 2026 +0800

    ini: warn when PLANNER_TYPE=1 falls back to trapezoidal due to low jerk
    
    Setting [TRAJ]PLANNER_TYPE = 1 with [TRAJ]MAX_LINEAR_JERK < 1.0 silently
    forced the trapezoidal planner, leaving users who requested S-curve
    planning with no indication their setting was ignored (the code even
    carried a FIXME asking for this warning). The same silent fallback
    existed for runtime changes via the inihal HAL pins.
    
    Print a one-time warning in both paths: at startup from loadTraj(),
    and once from check_ini_hal_items() when a HAL pin change triggers
    the fallback.

commit 5cb34168af1fbc05bec1299afe650258bf350319
Merge: c4c87522 d45804b2
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sun Aug 16 13:01:53 2026 +0200

    Merge pull request #4154 from grandixximo/tp-improve
    
    tp: S-curve planner performance and control fixes (solve storm, planner pool, cornering scale, G64 R)

commit c4c87522f10b68f07d3e6ea48f5c31e7cb4e2055
Merge: 8ea46713 683ac30b
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sun Aug 16 12:55:20 2026 +0200

    Merge pull request #4210 from grandixximo/fix/preview-limit-checks
    
    Preview "too large" gate: stop per-frame console spam, keep run_warn reliable

commit 8ea4671303bc5fbf436db5c5fe77ee5030387744
Merge: 48c8953d 6f3696f1
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Aug 16 11:02:33 2026 +0100

    Merge pull request #4382 from BsAtHome/halgs_halquery
    
    hal: Add the HAL query API and add IntEnum types

commit d45804b2b4d1633e6724d3a79c99489084ab1589
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 16 17:27:38 2026 +0800

    docs, tests: G64 R planner dial, SMOOTH_PLANNER and SCURVE_PEAK_SCALE
    
    Document the G64 R dial, the [TRAJ]SMOOTH_PLANNER and
    [TRAJ]SCURVE_PEAK_SCALE ini entries. Interp coverage for the G64 R
    planner dial, including the ambiguous G64/M19 R rejection and R on
    G61.

commit 7b2720e9265d202e52580bc7c7781b581cf8ad84
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 16 17:27:38 2026 +0800

    interp: refuse R word on a line with both G64 and M19
    
    G64 R is the planner dial, M19 R is the spindle-orient angle. Both on
    one line is ambiguous; reject it.

commit 99592b52ad5eec4d04861babf78351fcc08efccd
Author: chabron94 <chabron94@gmail.com>
Date:   Sun Aug 16 17:27:38 2026 +0800

    tp: G64 R planner dial, S-curve planner improvements
    
    Preallocated Ruckig planner pool (ruckig_wrapper): each trajectory segment used to create/destroy its own Ruckig planner from inside the servo cycle; on dense short-segment paths that meant constant heap traffic and variable-latency servo time. Replace with a fixed pool recycled by acquire/release, no allocation in steady state. Exhaustion falls back to a live ruckig_create() with a one-shot MSG_ERR, so behaviour never regresses below the original code. ruckig_pool_init() runs eagerly from sp_scurve_init() (init context) so the first active segment does not pay RUCKIG_POOL_SIZE heap allocations inside a servo cycle; lazy init in acquire remains as backstop. ruckig_pool_cleanup() + sp_scurve_cleanup() run at motmod exit. tpClear/tpHandleEmptyQueue/tpHandleAbort reset the queue via tcqInit without returning borrowed planners, stranding the active segment's slot; tpReleaseQueuedPlanners() now runs before all three resets so repeated stops/aborts can no longer exhaust the pool into live ruckig_create() in the servo cycle.
    
    Closed-form s-curve velocity queries replace per-cycle Ruckig solves: the look-ahead/blend optimizer ran full Ruckig root-solves every servo cycle (findSCurveMaxStartSpeed, findSCurveVSpeed via findSCurveVPeak, calcSCurveSpeedWithT); per-solve cost exploded on short/degenerate segments and peaked the servo thread on dense G-code. Replace all of them with constant-time analytic forms:
    
    - max-start-speed: invert d = (Vs+Ve)/2 * T(dv) (triangular cubic / trapezoidal quadratic), floored at Ve to match the Ruckig infeasible fallback, clamped to the rest-to-rest peak.
    - findSCurveVSpeed: rest-to-rest peak == max-start-speed over half the distance. The original Ruckig path returned HALF the true peak; the faithful x0.5 is preserved so behaviour is identical by default.
    - calcSCurveSpeedWithT: the original asked Ruckig for a geometrically impossible target, ALWAYS failed, and ALWAYS returned its fallback - return the fallback directly.
    
    Proven against ground-truth physics by an offline harness (src/emc/tp/scurve_analytic_test.c) and A/B-validated bit-identical against the live Ruckig path before the solver calls were removed.
    
    Runtime SCURVE_PEAK_SCALE knob: scales the s-curve rest-to-rest peak velocity used by the corner look-ahead. 0.5 = faithful (reproduces the original halved-peak cornering exactly), 1.0 = physically-correct full jerk-feasible cornering. [TRAJ]SCURVE_PEAK_SCALE sets the default, ini.traj-scurve-peak-scale tunes it live, motion clamps to 0.1..1.0, sp_scurve.c reads it each query so changes apply immediately. Default is 1.0, the physically-correct corner speed: the halved peak of the initial S-curve release was an accident, not a designed margin; 1.0 stays within the configured jerk/accel limits by construction, which is the actual contract with the integrator. Set 0.5 to reproduce the pre-fix behaviour.
    
    PLANNER_TYPE switch deferred until motion idle: flipping planner_type mid-motion re-routes the in-flight segment between the two update paths; position/velocity stay continuous but acceleration jumps, a jerk impulse, the very thing the s-curve planner exists to avoid. Now: idle (coord TP done + queue empty) = instant switch; moving = request latched and applied automatically at queue-idle by emcmotApplyPendingPlannerType() (once per servo cycle from emcmotController()), with a one-shot reportError() notice in the GUI. Motion is never aborted.
    
    G64 R word selects planner mode as a graded Fanuc-style dial, riding the EMC_TRAJ_SET_TERM_COND message G64 already emits (applied in program order by task, landing through the defer-until-idle guard):
    
        R omitted    -> planner unchanged (modal)
        R <= 0       -> trapezoidal
        0 < R <= 1.0 -> S-curve, cornering scale = R
        R > 1.0      -> S-curve, scale clamped to 1.0
    
    Note R0 -> R0.1 is a regime flip (trapezoid is jerk-UNlimited, the aggressive end), not the gentle end of a gradient; R0.1 is the gentlest setting.
    
    The R word carries intent only: part programs never name a planner implementation. The NML field carries intent (0 = trapezoidal, 1 = smooth/jerk-limited) and task resolves "smooth" against new [TRAJ]SMOOTH_PLANNER (default: PLANNER_TYPE when >0, else 1; currently only planner 1 exists and the value is range-capped accordingly). 0, or a missing jerk limit, makes task refuse R>0 with an operator error instead of silently ignoring the program's request. Programs stay valid when a machine's smooth planner implementation changes.
    
    Throttle the S-curve no-jerk log storm: the 'maxjerk < 1' error printed EVERY servo cycle for segments with no usable jerk limit (e.g. rotary-only moves with [AXIS_*]MAX_JERK unset); the fallback is graceful (trapezoidal for the segment), so warn once, naming the likely missing INI items. EMCMOT_SET_PLANNER_TYPE now refuses an S-curve request outright when no valid TRAJ-level max jerk is configured (parity with the initraj/inihal guards) instead of entering a degraded per-segment-fallback state.
    
    Co-authored-by: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>

commit 48c8953d7c34a5dc2e5baed7561aeb7b70939aab
Merge: 5e6af049 bc37bd90
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Aug 16 10:13:46 2026 +0100

    Merge pull request #4183 from grandixximo/fix/qtvcp-headless-excepthook
    
    qtvcp: don't pop a modal error dialog when headless

commit 683ac30b71d60cb7b53fe0a046789c23a8fa063e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 29 13:35:51 2026 +0800

    axis: warn when run_warn used a truncated preview
    
    run_warn() checks program extents from the preview parse. An aborted parse
    (PREVIEW_TIMEOUT or cancel) skips calc_extents(), leaving init extents, so
    run_warn() gives a false all-clear. Compute partial extents on abort and
    flag the preview incomplete so run_warn() reports it.

commit 3806b29136e13f5845936589d019ae5d16cf40e9
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Jun 27 13:24:56 2026 +0800

    glcanon: decide preview "too large" once at load, not every frame
    
    The byte-size check ran per frame in _resolve_show_program(), re-stat'ing
    the file each repaint and latching the refused name so the warning would not
    repeat. Decide it once in load_preview() instead, log it there, and have
    _resolve_show_program() read a flag. The file is still parsed fully, so the
    run-time limit check stays valid; only drawing is suppressed.

commit 5e6af049d21dad2a476729cee110cf6fdf044dbf
Merge: 4e8f7468 f44628a4
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Aug 16 10:03:54 2026 +0100

    Merge pull request #4221 from grandixximo/fix/tp-half-accel-nonblend
    
    tp: apply parabolic half-accel only during an actual blend

commit 4e8f74686c30c320d351791f64533369ee89fdbb
Merge: 05782976 68d0a5ea
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Aug 16 10:02:45 2026 +0100

    Merge pull request #4371 from grandixximo/merge-2.9-into-master
    
    Merge branch '2.9'

commit 057829765c390bb72c30658e96c3d30d281aa876
Merge: 3124b491 dfb5b80c
Author: andypugh <andy@bodgesoc.org>
Date:   Sun Aug 16 09:59:09 2026 +0100

    Merge pull request #4350 from Sigma1912/split_toggle2nist_component
    
    Split toggle2nist component

commit 3124b491e726dad2078b9944fb209832447af9fa
Merge: 0b1cbc72 a1124f69
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sun Aug 16 10:54:14 2026 +0200

    Merge pull request #4313 from grandixximo/issue4303-countfunction-names
    
    halcompile: support names= for count_function components

commit 0b1cbc72790906e72fb39e72c04412a9842c8515
Merge: def96a4f 2f0e02ab
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sun Aug 16 10:46:05 2026 +0200

    Merge pull request #4364 from sleepybishop/headless
    
    fix headless support

commit def96a4f53f35295a1a2658120f91c7cceb2552a
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Sat Aug 15 19:16:54 2026 -0700

    qtvcp -dialog_widgets: silence a log error message with the tool dialog
    
    Tool dialog is a special case, not using status messages or callbacks
    and so gave a logged error in the consol that was not needed.

commit 6f3696f1756889c97b1bad1fdfef81eaed6ad05a
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Sat Aug 15 16:11:58 2026 +0200

    hal: Add the HAL query API and add IntEnum types.

commit 5e4329cfe893a0b42ef8eb98286fcc9396556c83
Merge: 89022b0c 54686fe7
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Aug 14 12:35:49 2026 +1000

    Merge pull request #4376 from BsAtHome/fix_hm2_modbus-abs-path
    
    hm2_modbus: Don't complain about relative paths, it is up to the user

commit 89022b0c8c1fd3271969ac3675e5f027ff0819b5
Merge: 0a4be846 d6246a45
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Aug 14 12:34:47 2026 +1000

    Merge pull request #4378 from weblate/weblate-linuxcnc-linuxcnc-docs
    
    Translations update from Hosted Weblate

commit d6246a4505bfbcfbe6ab7752fbc19342500816f2
Author: Américo Monteiro <a_monteiro@gmx.com>
Date:   Fri Aug 14 01:52:31 2026 +0200

    Translated using Weblate (Portuguese)
    
    Currently translated at 28.7% (9776 of 33994 strings)
    Author: Américo Monteiro <a_monteiro@gmx.com>
    
    Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/pt/
    Translation: LinuxCNC/LinuxCNC Documentation

commit c750287d2d05140772beeab9cea64b611ffc0397
Author: Salvador Peña <salvadorp74@hotmail.com>
Date:   Fri Aug 14 01:52:28 2026 +0200

    Translated using Weblate (Spanish)
    
    Currently translated at 32.5% (11067 of 33994 strings)
    Author: Salvador Peña <salvadorp74@hotmail.com>
    
    Co-authored-by: Salvador Peña <salvadorp74@hotmail.com>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
    Translation: LinuxCNC/LinuxCNC Documentation

commit 0619c152ec0eac856e56a79d117302c82f19d59e
Author: Luca Toniolo <toniolo.luca@outlook.com>
Date:   Fri Aug 14 01:52:22 2026 +0200

    Translated using Weblate (German)
    
    Currently translated at 99.6% (33891 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Translated using Weblate (Spanish)
    
    Currently translated at 32.5% (11067 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Co-authored-by: Luca Toniolo <toniolo.luca@outlook.com>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/de/
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
    Translation: LinuxCNC/LinuxCNC Documentation

commit 54686fe773ffb638bd319a3868b20e16d29728a5
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Thu Aug 13 11:08:56 2026 +0200

    hm2_modbus: Don't complain about relative paths, it is up to the user.

commit 0a4be8460ec6fdffbf63699c7bc1a0a935a7e51c
Merge: 1313b7e5 6aa48da0
Author: Greg Carl <26096779+snowgoer540@users.noreply.github.com>
Date:   Wed Aug 12 12:59:23 2026 -0400

    Merge pull request #4293 from alex-pres/pr-gremlin-opengl-rewrite
    
    glcanon: rewrite the G-code preview on OpenGL 3.3 core

commit 6aa48da09c9492e0cfafb6b3d9fcb2c07e9b61ab
Author: Alexey Presnyakov <309782758+alex-pres@users.noreply.github.com>
Date:   Wed Aug 12 19:50:52 2026 +0400

    glcanon: rewrite the G-code preview on OpenGL 3.3 core
    
    Replaces the fixed-function preview shared by AXIS, the GTK screens and
    QtVCP with a shader/VBO renderer: a baked trajectory buffer, an offscreen
    ID-buffer pass for picking, and a glyph atlas for overlay text. The GL
    matrix stack, display lists, immediate mode and GL_SELECT are gone. Added
    optional optimised MoveBatch protocol to g-code parser. Rendering code
    decomposed to a Scene object containing Parts (each can be replaced or
    disabled).

commit 2f0e02abd849e2a67517da8707cf80319d820ccb
Author: joseph calderon <calderon.joe@gmail.com>
Date:   Tue Aug 11 07:15:55 2026 -0700

    address pr code review feedback

commit 68d0a5eacf83a36039eb819e9cbeb69e171efbba
Merge: 1313b7e5 2d1cc6eb
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Aug 11 16:13:03 2026 +0800

    Merge branch '2.9'

commit 1313b7e5a4d6fa29fa22b118d1d8bdedc3b3b4e7
Merge: 4c8532a2 1081a2d7
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sun Aug 9 15:00:41 2026 +0200

    Merge pull request #4368 from grandixximo/fix/docs-image-stage-race
    
    docs(build): stage translated images atomically to fix a -j race

commit 1081a2d74f66f79f402cba5dc5d2d260bd86e347
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 14:54:47 2026 +0800

    docs(build): stage translated images atomically to fix a -j race
    
    .adoc-images-stamp and the per-file TRANSLATED_IMAGE_RULE both stage the
    same translated images, and under parallel make two cp -f calls on the
    same destination intermittently fail with "cannot create regular file:
    File exists".  Seen in CI package-indep on PR #4367
    (de/drivers/images/GM_ENDSWpinout.png).
    
    Stage via mktemp + mv -f instead: the rename is atomic so concurrent
    stagers can no longer produce EEXIST, and chmod 644 restores the
    permissions plain cp used to give the new file (mktemp makes 600).

commit 4c8532a27d84005177431a3cef2d5a756387619b
Merge: 4a410c4d e9655952
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 16:51:20 2026 +1000

    Merge pull request #4367 from grandixximo/fix/docs-anchor-scroll-margin
    
    docs: topbar language label wrap, dropdown metrics, and anchor offset fixes

commit e9655952c01a03060220291c7f385bc6d89eb9ab
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 13:32:52 2026 +0800

    docs: keep the topbar language label on one line on phones
    
    The longest labels (Русский, Українська) wrapped below ~390px, dropping
    the ▾ onto its own line, and the open dropdown had different row rhythm
    on index vs content pages (index.css li margin-top, asciidoctor
    line-height leaks).  Pin the dropdown metrics at #lcnc-topbar
    specificity, nowrap the label, and slim the bar below 480px and 360px;
    the worst-case label plus an injected search icon now fits to 320px.

commit 531f53d6cf05916ba76daa3e80f7046727d2003a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 13:32:52 2026 +0800

    docs: keep anchor targets below the fixed topbar
    
    Anchor jumps park the target at viewport top, where the fixed 3rem
    translucent topbar covers it.  scroll-margin-top drops every in-page
    target (including docs search section results) just below the bar.

commit 4a410c4d36d3b895f29533f75d853f5583ae465e
Merge: d63b4522 dd01572e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 14:26:51 2026 +1000

    Merge pull request #4366 from grandixximo/po4a-dual-pid
    
    docs: register dual-pid-example.adoc with po4a

commit dd01572efe979b5dd40da5c9b9f25693db8ea661
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 09:37:25 2026 +0800

    docs: register motion/dual-pid-example.adoc with po4a so translations get built

commit d63b4522d50a63df33497c9294ae9f355735b246
Merge: 89b2d5b4 3f890c14
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun Aug 9 10:29:02 2026 +1000

    Merge pull request #4365 from weblate/weblate-linuxcnc-linuxcnc-docs
    
    Translations update from Hosted Weblate

commit 3f890c1415e0718df529fe2c8733b6f9b83bac33
Author: Américo Monteiro <a_monteiro@gmx.com>
Date:   Sun Aug 9 00:52:28 2026 +0200

    Translated using Weblate (Portuguese)
    
    Currently translated at 25.9% (8818 of 33994 strings)
    Author: Américo Monteiro <a_monteiro@gmx.com>
    
    Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/pt/
    Translation: LinuxCNC/LinuxCNC Documentation

commit ecad46948691fa8926d530c0676d599f08d8aed2
Author: Luca Toniolo <toniolo.luca@outlook.com>
Date:   Sun Aug 9 00:52:24 2026 +0200

    Translated using Weblate (Ukrainian)
    
    Currently translated at 99.6% (33878 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Translated using Weblate (Russian)
    
    Currently translated at 34.3% (11668 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Translated using Weblate (German)
    
    Currently translated at 99.6% (33891 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Translated using Weblate (Norwegian Bokmål)
    
    Currently translated at 4.4% (1499 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Translated using Weblate (Spanish)
    
    Currently translated at 32.3% (11013 of 33994 strings)
    Author: Luca Toniolo <toniolo.luca@outlook.com>
    
    Co-authored-by: Luca Toniolo <toniolo.luca@outlook.com>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/de/
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/nb_NO/
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/ru/
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/uk/
    Translation: LinuxCNC/LinuxCNC Documentation

commit a24cfb343e558820c3df032f28c9ba9b804d9dea
Author: Salvador Peña <salvadorp74@hotmail.com>
Date:   Sun Aug 9 00:52:18 2026 +0200

    Translated using Weblate (Spanish)
    
    Currently translated at 32.3% (11013 of 33994 strings)
    Author: Salvador Peña <salvadorp74@hotmail.com>
    
    Co-authored-by: Salvador Peña <salvadorp74@hotmail.com>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
    Translation: LinuxCNC/LinuxCNC Documentation

commit 58b35227b98d8a7de702397a481cc4df05f0edc0
Author: joseph calderon <calderon.joe@gmail.com>
Date:   Sat Aug 8 09:12:42 2026 -0700

    add support for headless compilation

commit 89b2d5b4694cef94b4bd2e692ecb690d7d47495d
Merge: ae2d0a73 5c31ef1b
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sat Aug 8 16:59:40 2026 +0200

    Merge pull request #4361 from grandixximo/docs-asciideps-targets
    
    docs(build): name the real target in the generated dependencies

commit 5c31ef1b969f5464183001427cf2d63059bd3720
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 13:55:07 2026 +1000

    docs(build): name the real target in the generated dependencies
    
    asciideps derives the target it emits by stripping a `.txt` suffix, which is what the docs were written in when it landed in 2011.  Since the sources became `.adoc` nothing is stripped, so it generates rules for targets like docs/build/adoc/en/hal/tutorial.adoc.html that nothing builds: every include:: and image: dependency it has extracted since then has been inert.
    
    Editing hal/halshow.adoc therefore never re-rendered hal/tutorial.html, which include::s it, and editing a chapter never rebuilt the Master PDF pulling it in.  Master_Documentation.adoc alone include::s 119 files, so all four English PDFs stayed stale until docclean.
    
    The target is not derivable from the source path, so pass it in: a page is consumed by its .html, a Master document is never rendered as HTML and its English PDF lands in objects/.  The unused `.dep` line went with the rewrite.
    
    Reconnecting the dependencies exposed three latent problems, fixed here:
    
    - Commented-out image: macros counted as dependencies.  The macro is matched anywhere on the line so inline refs are caught, which also matched a ref behind a `//`; one in gui/gmoccapy.adoc points at a since-deleted image, stopping the build.
    - Images referenced inline were never staged into the translated adoc tree, because .adoc-images-stamp anchored its scan at the start of the line.  The translated PDFs embed images from that tree, so they have been missing all 39 of them.  Both extractors now key on the macro shape rather than a bare `image:`, so prose mentioning one is not taken for a path.
    - Staged translated images had no rule of their own.  Named as prerequisites, a clean -j build reached one before the bulk stamp had written it and fell through to the "Required image file" error rule.  Each now stages on demand; the bulk pass stays, since asciideps records only the last macro on a line and cannot be the guarantee that asciidoctor-pdf finds every image.
    
    Verified with HTML, PDF and the seven translations enabled: a clean build renders 5210 pages and 32 Master PDFs with no unresolved directives, the two builds after it do no work, and touching a page, a partial, a chapter or an image rebuilds exactly what depends on it in a single `make`.

commit ae2d0a7376df82866869fe98e528da36ee56ce62
Merge: 64ade4cb 6c13d05e
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sat Aug 8 15:48:35 2026 +0200

    Merge pull request #4356 from grandixximo/fix/halscope-relaunch
    
    halscope: fix "loadrt scope_rt failed" when reopening the scope

commit 64ade4cb9b276400884edd104550eef119ed4f6a
Merge: 59e350a9 cf7349aa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 23:41:30 2026 +1000

    Merge pull request #4363 from BsAtHome/fix_linuxcncrsh-typo
    
    linuxcncrsh: Fix typo in reply text asserting a SET as a GET command

commit dfb5b80c3683fee7da46646179f84e1ac3183db7
Author: david mueller <mueller_david@hotmail.com>
Date:   Thu Aug 6 15:07:39 2026 +0100

    toggle2nist.comp: restore 2.9 logic, add debounce, fix description
    
    Restores the legacy functionality (as in 2.9) plus added input debounce and
    and a maximum output pulse length to recover if the 'is-on' signal does not change state.
    Also fixes the description so it matches actual (legacy) behavior.

commit 59e350a9a731d4699b215dccc92b4495ad543f5c
Merge: 218e7419 bbb72b2a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 23:06:45 2026 +1000

    Merge pull request #4362 from weblate/weblate-linuxcnc-linuxcnc
    
    Translations update from Hosted Weblate

commit bbb86ba4424390f4134a8151c9f0b4e3754f8523
Author: david mueller <mueller_david@hotmail.com>
Date:   Thu Aug 6 16:21:55 2026 +0100

    Adds a new 'momentary2nist' component
    
    This component does what the legacy 'toggle2nist' man page described plus
    added debounce on input pins and a maximum output pulse length to recover if
    the 'is-on' signal does not change state.

commit bbb72b2a85bcc4b974255922d94a04f55aa6307b
Author: Olivier M <olinews@free.fr>
Date:   Sat Aug 8 13:51:23 2026 +0200

    Translated using Weblate (French)
    
    Currently translated at 73.0% (2833 of 3877 strings)
    
    Co-authored-by: Olivier M <olinews@free.fr>
    Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc/fr/
    Translation: LinuxCNC/LinuxCNC

commit 218e7419d6c711240b5797c770ac1257aef313d8
Merge: 6de285c6 cf78a016
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 22:36:07 2026 +1000

    Merge pull request #4352 from BsAtHome/halgs_halrmt
    
    hal: Rewrite most of halrmt to become functional and use the query API

commit 6de285c61dc9e411912421d12d9af7de122716ff
Merge: c794fccd a70ec3d3
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 22:09:04 2026 +1000

    Merge pull request #4355 from BsAtHome/fix_inifile-emcmodule-doc
    
    docs: add ini-file API documentation for linuxcnc.ini module

commit cf7349aa03ca16d86f668b25d9c0d0a6e903d361
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Fri Aug 7 12:04:09 2026 +0200

    linuxcncrsh: Fix typo in reply text asserting a SET as a GET command.

commit cf78a01688ecf10ec67018c7c48a2a6cbf64b08a
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Fri Aug 7 12:04:09 2026 +0200

    hal: Rewrite most of halrmt to become functional and use the query API.

commit a70ec3d3e946417933667aa1f5deda0322a809bf
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Fri Aug 7 15:10:09 2026 +0200

    docs: add ini-file API documentation for linuxcnc.ini module.

commit c794fccd045dd52f86009db22cb02c8aeb143def
Merge: cb2c8aa6 27c09bec
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sat Aug 8 12:49:37 2026 +0200

    Merge pull request #4358 from grandixximo/docs-rebuild-unstable
    
    docs(build): stage English sources with per-file rules so one make rebuilds

commit 6c13d05eae563fcee73a761996329f27e153c02c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Aug 7 22:46:45 2026 +1000

    halscope: fix "loadrt scope_rt failed" when reopening the scope
    
    Closing halscope leaves scope_rt loaded, so every launch after the first
    has to detect that the realtime part is already there and skip the
    loadrt. That detection broke in d88d10db8f: the funct lookup
    halpr_find_funct_by_name("scope.sample") was replaced with the component
    lookup hal_comp_by_name("scope.sample", NULL). No component is named
    "scope.sample" (the component is "scope_rt", "scope.sample" is the funct
    it exports), so the lookup always returns -ENOENT and halscope always
    runs "halcmd loadrt scope_rt".
    
    On the second launch that loadrt fails because scope_rt is already
    loaded, and halscope exits immediately with "loadrt scope_rt failed".
    From a GUI such as AXIS ("Machine" > "Hal Scope") the window simply
    never appears again until LinuxCNC is restarted.
    
    Look the funct up with hal_list_funct() instead, the same way
    scope_horiz.c already does, which restores the original semantics.

commit cb2c8aa689c0f1f386d5f35008984cbe0a655f24
Merge: e96acd9a 7a4659de
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sat Aug 8 11:53:36 2026 +0200

    Merge pull request #4360 from grandixximo/three21kins-getter-setter
    
    hal: Update three21kins to getter/setter

commit e96acd9aa29f2835d95ba857c5a7ec2f9ecff41b
Merge: 4aa969b3 8c722046
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 17:23:02 2026 +1000

    Merge pull request #4357 from grandixximo/gmoccapy-4353-y2-button
    
    gmoccapy: don't show_all() containers holding embedded tabs

commit 4aa969b3bb2f4ba4bb1bb18dc901610c5a2114a6
Merge: 79bbeb90 f4bdaa37
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 17:10:00 2026 +1000

    Merge pull request #4270 from sleepybishop/three21
    
    Add three21kins analytical kinematics solver

commit 7a4659dee2d1788cd2923ad9b84d84663577e8ae
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 16:55:42 2026 +1000

    hal: Update three21kins to getter/setter.
    
    three21kins was merged from a branch that predated the tree-wide
    kinematics conversion in 51fc3029b0, so it still used the old
    double-pointer pin pattern.
    
    Store the DH parameters as hal_real_t members, create the pins with
    hal_pin_new_real() so the defaults come from the pin definition, and
    read them with hal_get_real(). The per-call local copies of the
    parameters are kept as they were.
    
    No functional change.

commit 2d1cc6eb3e848d8520f2e7a15533f270264478af
Merge: 2b997359 2a8e5aba
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 14:41:16 2026 +1000

    Merge pull request #4344 from grandixximo/docs/spindle-orient-fix
    
    docs: spindle orient fix

commit 27c09becca4b8677527dd78d2df2b17c6e3291cc
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Aug 7 22:53:43 2026 +1000

    docs(build): stage English sources with per-file rules so one make rebuilds
    
    Fixes #4354.  After a full HTML docs build, touching a source under docs/src did nothing on the next `make`; only the run after that re-rendered the page.
    
    English sources are staged into docs/build/adoc/en by a bulk find|tar behind `.stage-en-stamp`, with the staged copies attached to it order-only.  make stats a prerequisite once per run and re-stats it only if it decided to remake it, and an order-only edge never triggers a remake, so the staged .adoc kept its pre-staging mtime for the whole run.  The stamp rewrote that same file mid-run, but the renderer had already compared the .html against the stale mtime and concluded it was up to date.
    
    Replace the stamp with one copy rule per staged file, so make knows the staged copy changed.  cp -p also keeps the source mtime to the nanosecond where tar rounded it down to the whole second.  Per-file rules alone would stage only what some rule asks for, which is a smaller set than the bulk copy produced, so a `stage-en` aggregate keeps the old guarantee that everything lands before anything renders; without it a partial like hal/halshow.adoc never arrives and the page including it renders an "Unresolved directive" placeholder.

commit 79bbeb90cc1046549b4656acd2e6a835b7d40a77
Merge: 41ce781a 17221742
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 13:39:32 2026 +1000

    Merge pull request #4346 from LinuxCNC/dual_pid_doc
    
    docs -add writeup about a dual PID axis example

commit 8c72204638a9e5fffd3f4b4f210cf3ae4ef76bb4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat Aug 8 10:53:13 2026 +0800

    gmoccapy: don't show_all() containers holding embedded tabs
    
    show_all() on ntb_preview recursively unhid widgets hidden at init,
    i.e. the lathe-only back-tool view button rbt_view_y2, making it
    appear on mill configs. Show only the container, the socket and its
    tab label.
    
    Fixes #4353

commit 17221742bfa94097af561ca0a165d2a1df621cbb
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Wed Aug 5 19:08:54 2026 -0700

    docs -add writeup about a dual PID axis example

commit f4bdaa372355d4fb8e48d636034384d2dec5fb2d
Merge: 5c5aed95 41ce781a
Author: joseph calderon <calderon.joe@gmail.com>
Date:   Fri Aug 7 18:00:58 2026 -0700

    merge upstream/master

commit 2b997359b463920c08bde301116d6094e3a938ec
Merge: 0ef6edce 9e0015fe
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Fri Aug 7 17:48:35 2026 +0200

    Merge pull request #4321 from grandixximo/backport-homing-guard-2.9
    
    Fix homing bug when trying to home while homing is in progress (2.9 backport)

commit 41ce781a299b6bcd71862d6556a8536db086298a
Merge: 132c2b88 82cd21f9
Author: BsAtHome <bertho@vagrearg.org>
Date:   Fri Aug 7 16:03:37 2026 +0200

    Merge pull request #4337 from grandixximo/fix/homecomp-rebuild
    
    hal: restore working homecomp example

commit 132c2b88f6242ae1c9aa6bb2f4c6a47dd12bfc04
Merge: d4ea0c67 0d3ddc10
Author: BsAtHome <bertho@vagrearg.org>
Date:   Fri Aug 7 15:17:57 2026 +0200

    Merge pull request #4351 from grandixximo/emcrsh-wait-homed
    
    linuxcncrsh: Fix race between SET JOINT_HOME and SET JOINT_WAIT_HOMED

commit 0d3ddc10f22ac84b0edcc33c4d12692ba2446ba1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Fri Aug 7 10:35:47 2026 +0800

    linuxcncrsh: Fix race between SET JOINT_HOME and SET JOINT_WAIT_HOMED
    
    SET JOINT_HOME is acknowledged when task has received the command, but the motion controller raises the homing flag only after its next servo-thread run and the status needs to propagate back through task. A SET JOINT_WAIT_HOMED issued in between was refused with 'not homed and not in the process of homing', and the following homing commands then failed with 'Homing not possible until current homing process is finished'. This showed up as intermittent tests/linuxcncrsh failures on slow CI runners.
    
    SET JOINT_HOME now waits for the requested joint to become homing or homed, one heartbeat at a time, the same way SET MACHINE and SET ESTOP wait for the motion controller to catch up, and refuses the command if homing never starts. A homed joint may legitimately not enter the homing state again (HOME_NO_REHOME), hence the check for either state. Home-all (-1) is excluded because joints without HOME_SEQUENCE are skipped by design. SET JOINT_WAIT_HOMED keeps a grace wait for the homing flag before declaring the error, since the homing may have been started through a different user interface.

commit d4ea0c67b8a024c656b735b822649ed1062f7ae3
Merge: dd8d0be1 6c52011d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Aug 6 22:20:35 2026 -0400

    Merge pull request #4284 from grandixximo/motion-mode-retry
    
    motion: defer mode transitions instead of dropping them when not in position

commit dd8d0be15b88bdb163ab17a6f0ea5f73936cdffc
Merge: 98120adc fe6f88f2
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Thu Aug 6 13:45:56 2026 +0200

    Merge pull request #4348 from grandixximo/axis-sim-traj-maxvel
    
    configs: align sim axis [TRAJ] max velocity with [DISPLAY] and joints

commit fe6f88f2a432c094f8d47698962703ab0c13b2dd
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Aug 6 14:55:58 2026 +0800

    configs: align sim axis [TRAJ] max velocity with [DISPLAY] and joints
    
    axis.ini is the only shipped GUI sim config where
    [DISPLAY]MAX_LINEAR_VELOCITY (5) disagrees with
    [TRAJ]MAX_LINEAR_VELOCITY (4); gmoccapy sets both equal and
    touchy/axis_mm rely on the TRAJ fallback. The joints are 5 too.
    
    The mismatch is not just cosmetic. axis initializes its Max Velocity
    slider to the [DISPLAY] maximum and the Tk scale -command sends
    EMC_TRAJ_SET_MAX_VELOCITY(5) at startup; emcTrajSetMaxVelocity()
    writes that straight to motion as EMCMOT_SET_VEL_LIMIT with no clamp
    against the ini value, after initraj already seeded the limit with
    the [TRAJ] value (4). If the GUI's NML write lands before
    linuxcncsvr formats the command buffer it is lost and the machine
    keeps 4; otherwise it runs at 5. The coordinated-move velocity cap
    for this config therefore depends on startup timing, and the axis
    Max Velocity readout settles at 240 or 300 in/min accordingly.
    
    Set [TRAJ]MAX_LINEAR_VELOCITY to 5 so the power-on default matches
    the [DISPLAY] slider maximum and the joint limits, making the
    settled cap deterministic. Practical behavior barely changes: axis
    already tries to set 5 at every startup, it just sometimes fails.

commit 0ef6edce84800d63e52cc88ff7d36fcae9749f74
Merge: 18c5bb5b c2a90fa0
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Aug 6 02:24:53 2026 -0400

    Merge pull request #4345 from grandixximo/chore/ci-to-ubuntu
    
    2.9 CI: Use main Ubuntu archive instead of azure.archive.ubuntu.com (backport of #4336)

commit 98120adc271a91f6be69b98d489f14d75ce23507
Merge: df2e9187 fcfb06bf
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Aug 6 01:29:07 2026 -0400

    Merge pull request #4347 from grandixximo/chore/ci-mirror-fix
    
    CI: rewrite apt-mirrors.txt so the mirror switch actually applies

commit c2a90fa0f6f4880473fde8f2320bc5ec1f650124
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Aug 6 13:01:44 2026 +0800

    CI: rewrite apt-mirrors.txt so the mirror switch actually applies
    
    The runner image configures apt with
    URIs: mirror+file:///etc/apt/apt-mirrors.txt in ubuntu.sources, so the
    azure.archive.ubuntu.com URL lives in that file, not in sources.list or
    the .list/.sources files. The sed pass in 1d46401b07 therefore matched
    nothing and apt kept using the azure mirror; the rip-and-test job on
    this branch stalled in Install dependencies and was cancelled at the
    45 minute timeout.
    
    Add /etc/apt/apt-mirrors.txt to the rewrite list and fail the step if
    any azure.archive.ubuntu.com reference survives under /etc/apt, so a
    future runner image layout change cannot turn this script into a
    silent no-op again.

commit fcfb06bfe8ee0509d0888a1e5400d130be4b37ab
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu Aug 6 13:01:00 2026 +0800

    CI: rewrite apt-mirrors.txt so the mirror switch actually applies
    
    The runner image configures apt with
    URIs: mirror+file:///etc/apt/apt-mirrors.txt in ubuntu.sources, so the
    azure.archive.ubuntu.com URL lives in that file, not in sources.list or
    the .list/.sources files. The sed pass in 1d46401b07 therefore matched
    nothing and apt kept using the azure mirror; jobs kept stalling.
    
    Add /etc/apt/apt-mirrors.txt to the rewrite list and fail the step if
    any azure.archive.ubuntu.com reference survives under /etc/apt, so a
    future runner image layout change cannot turn this script into a
    silent no-op again.

commit 4428555a2a1c3bfe55e685d23c1e90409e2b37aa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Aug 4 07:52:24 2026 +0800

    CI: Use main Ubuntu archive instead of azure.archive.ubuntu.com
    
    The azure.archive.ubuntu.com apt mirror on GitHub-hosted runners
    regularly degrades to trickle speeds for extended periods, stalling
    package downloads until the job hits its timeout. This is a recurring
    upstream problem, see actions/runner-images issues #7048 and #12949.
    apt retries do not help because the connection stays alive, only slow.
    
    Switch affected jobs to archive.ubuntu.com, which is consistently fast
    from Azure.

commit 2a8e5aba2c40fa663af6e08203b7ff9f4b837603
Author: david mueller <mueller_david@hotmail.com>
Date:   Wed Aug 5 10:12:14 2026 +0100

    Man: Remove outdated logic description from man page
    
    The relevant logic was changed in Commit b2cd764 but the man page was not updated.
    The Functionality of the logic is likely easier to understand by looking at the code.

commit 576c28fd343e76515f884113cd151440566a5018
Author: david mueller <mueller_david@hotmail.com>
Date:   Wed Aug 5 10:11:06 2026 +0100

    Docs: M19 does not use encoder index signal

commit df2e918723a0afe2e0f7e1b24741bd59b4e27d4c
Merge: 9d52bb1f dd687592
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed Aug 5 23:21:55 2026 +0200

    Merge pull request #4199 from hdiethelm/hm2_eth_oob_v5
    
    Mesa Hostmot2 Xenomai4 OOB networking support

commit dd687592a33c13cd234d06929d7c7e62fb03e8e0
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Tue Aug 4 22:33:39 2026 +0200

    hm2_eth: Improve timeout handling
    
    There where three different ways of handling recv timeouts. The reason
    is probably that SO_RCVTIMEO works only down to 8ms which would create a
    real time violation.
    
    By using ppoll(), timeouts down to 100us work reliably without needing
    to poll recv with MSG_DONTWAIT. This reduces the CPU load considerably.

commit 1696cda44e94110115f20f148a5e86f7140f87ea
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jul 19 13:24:15 2026 +0200

    Xenomai EVL network for Hostmot2: Docs
    
    Also document missing pin packet-error-total.

commit 8ff2665028abb8a15f8335e5740310137d395a9a
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sun Jul 19 12:47:36 2026 +0200

    Xenomai EVL network for Hostmot2
    
    Split into two network implementations, one for posix and one for evl.
    
    There is a new option for hm2_eth: board_rtnet=evl / board_rtnet=posix
    to select which network implementation is used.
    
    With board_rtnet=evl, initf hm2_eth.realtime-init servo-thread needs to
    be added to the .ini file to initialize the realtime network inside the realtime context.

commit 9d52bb1f7e674928a3cc42b775fbd05f1db16776
Merge: 7d5d573c 28b8909e
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed Aug 5 13:56:15 2026 +0200

    Merge pull request #4340 from grandixximo/docs-anchor-lint
    
    docs: add derived-id section reference lint

commit 7d5d573c5d6fc32ac3f9c9a4cd23aeec7cc42cb5
Merge: 01de207d 1f54c987
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Aug 5 07:47:31 2026 -0400

    Merge pull request #4342 from Sigma1912/Update_spindle_orient_docs
    
    Update spindle orient docs

commit 28b8909e911dbeae325cde1cff87e77b228f21bc
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Aug 5 11:08:23 2026 +0800

    docs: add derived-id section reference lint
    
    scripts/docs-anchor-check.py, wired into the htmldocs CI job with
    --enforce, flags <<_derived>> xrefs and link:...html#_derived URLs
    whose target has no explicit [[anchor]] in docs/src. Derived ids come
    from section titles, so such references break when a title is
    translated or retitled. Pin the target with an explicit anchor
    instead. The lint reads only the English sources, so translations
    cannot trip it.
    
    Also pins the remaining lint hits, all same-page links in untranslated
    man pages (_subcommands, _mbccs_file_format, _modbus_functions,
    _modbus_types, _hal_types). Explicit ids match the auto-generated
    ones, so output is unchanged. With the five anchors from #4339 merged,
    the lint reports the tree clean.

commit 01de207da6939f1dbf7bc5bf0fa0c165f893a4e7
Merge: 5474573f b1e38ca0
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed Aug 5 12:05:08 2026 +0200

    Merge pull request #4339 from grandixximo/docs-anchor-auto-ids
    
    docs: add explicit anchors for sections referenced by auto-generated ids

commit 1f54c987f4bbc6cfcaa18df4336260bf6ca396cc
Author: david mueller <mueller_david@hotmail.com>
Date:   Wed Aug 5 10:12:14 2026 +0100

    Man: Remove outdated logic description from man page
    
    The relevant logic was changed in Commit b2cd764 but the man page was not updated.
    The Functionality of the logic is likely easier to understand by looking at the code.

commit 444d06882175d1ca0b17315bda6c6590866c0aaf
Author: david mueller <mueller_david@hotmail.com>
Date:   Wed Aug 5 10:11:06 2026 +0100

    Docs: M19 does not use encoder index signal

commit b1e38ca0a82150ee5942bdcd8561524b83944a49
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Aug 5 10:41:03 2026 +0800

    docs: add explicit anchors for sections referenced by auto ids
    
    These five sections are linked to via their auto-generated ids
    (_normal_download, _alternate_install_methods, _latency_tuning,
    _ini_settings, _commands). Translations change the section titles,
    which changes the generated id and breaks every such link in the
    translated HTML (flagged by the CI checklink run for de, es, ru, uk
    and nb). Pinning the id with an explicit anchor makes the targets
    translation-proof. English output is unchanged since the explicit id
    matches the auto-generated one.

commit 5474573f703ecf128916481a46da07dd976acde7
Merge: 85b35db3 7512f354
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Aug 4 07:39:28 2026 -0400

    Merge pull request #4338 from BsAtHome/halgs_taskclass-iocontrol
    
    hal: Update iocontrol to use getter/setter

commit 85b35db3f1a38a49cb82907a0b46148a81f84fe6
Merge: 02765328 b7ed2f65
Author: BsAtHome <bertho@vagrearg.org>
Date:   Tue Aug 4 13:22:43 2026 +0200

    Merge pull request #4246 from grandixximo/feat/man-xref-links
    
    docs: link manpage cross-references in HTML output

commit 027653288d664a2aeb5ea19251558fd0eb9e60e2
Merge: bedcc577 d1fe710f
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Aug 4 06:59:13 2026 -0400

    Merge pull request #4330 from BsAtHome/halgs_components-rtai
    
    hal: Update kernel-only components (RTAI) to getter/setter

commit 7512f3543cf14a69091c41e4360466d1929e3b99
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Tue Aug 4 12:21:59 2026 +0200

    hal: Update iocontrol to use getter/setter.

commit d1fe710fbc1750837460dac901f58c7fe937d117
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Mon Aug 3 17:17:51 2026 +0200

    hal: Update kernel-only components (RTAI) to getter/setter.

commit bedcc5771ab38ac449e54983131a6d632d04fd15
Merge: b0b9ded1 1d46401b
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Aug 4 09:35:26 2026 +0100

    Merge pull request #4336 from grandixximo/ci-apt-mirror
    
    CI: Use main Ubuntu archive instead of azure.archive.ubuntu.com

commit 82cd21f954feb3a3aeceb6b71cd9ecbf3290d5e4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Aug 4 16:29:38 2026 +0800

    docs: document the homing module interface
    
    Add per-function documentation to homing.h: what each interface
    function does, when motmod calls it, and return semantics.  Point to
    it from the code-notes motion-controller section and from the
    homecomp description so man page readers find it.

commit 76d079c03e475fd16fe96fb8b85d8edffd59d2df
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Aug 4 13:26:21 2026 +0800

    hal: restore working homecomp example
Created: 2025-03-16 Last update: 2026-08-17 00:32
testing migrations
  • excuses:
    • 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, #1143333
    • ∙ ∙ 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
    • Additional info (not blocking):
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/l/linuxcnc.html
    • ∙ ∙ 49 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: 9
  • RC: 2
  • 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
  • patches for 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