Debian Package Tracker
Register | Log in
Subscribe

linuxcnc

Choose email to subscribe with

general
  • source: linuxcnc (main)
  • version: 1:2.9.7-1
  • maintainer: LinuxCNC Developers (DMD)
  • uploaders: Sebastian Kuzminsky [DMD] – Jeff Epler [DMD] – Andy Pugh [DMD]
  • arch: all any
  • std-ver: 4.7.2
  • 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
  • stable: 1:2.9.4-2
  • unstable: 1:2.9.7-1
versioned links
  • 2.9.0~pre1+git20230208.f1270d6ed7-1+deb12u1: [.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.7-1: [.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 (5 bugs: 1, 3, 1, 0)
  • linuxcnc-uspace-dev
action needed
Debci reports failed tests high
  • unstable: pass (log)
    The tests ran in 0:01:49
    Last run: 2026-05-31T01:44:49.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-06-03 23:31
A new upstream version is available: 2.9.8 high
A new upstream version 2.9.8 is available, you should consider packaging it.
Created: 2026-02-19 Last update: 2026-06-03 22:00
lintian reports 1 error and 51 warnings high
Lintian reports 1 error and 51 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2023-10-30 Last update: 2026-05-27 03:01
The package has not entered testing even though the delay is over normal
The package has not entered testing even though the 2-day delay is over. Check why.
Created: 2026-04-13 Last update: 2026-06-04 00: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-06-04 00: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-06-03 23:30
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 3cd702c6906c73300d6ae421bfcc663804d06233
Merge: 6bda976b b1fea7db
Author: andypugh <andy@bodgesoc.org>
Date:   Wed Jun 3 13:52:20 2026 +0100

    Merge pull request #4092 from PeterStolz/fix-conflicting-duplicate-ini-keys
    
    configs: remove duplicate INI keys (first occurrence wins)

commit 6bda976b92a312a90b05b203f4825e93b8c5da39
Merge: 4761ed71 217cfb8f
Author: andypugh <andy@bodgesoc.org>
Date:   Wed Jun 3 13:33:02 2026 +0100

    Merge pull request #4082 from hdiethelm/rtapi_get_clocks_removal_v2
    
    Remove rtapi_get_clocks()

commit 4761ed71005aabafdc2cca179eb86a9c54ac5d2a
Merge: b16b0110 03b7b255
Author: andypugh <andy@bodgesoc.org>
Date:   Wed Jun 3 13:17:00 2026 +0100

    Merge pull request #4114 from grandixximo/fix/sys-notify-dbus-uaf
    
    qtvcp: fix startup segfault when no notification daemon is present

commit b16b01100e864e30a184d8c7408d7c447cb98d83
Merge: 678d99c3 2a0b291a
Author: andypugh <andy@bodgesoc.org>
Date:   Wed Jun 3 13:03:40 2026 +0100

    Merge pull request #3944 from grandixximo/narrow-option-1-encoder
    
    refactor(hm2): drop _64 encoder pins, keep 64-bit internal

commit 03b7b2551660436a4be13bbcbf5b19b73bc65810
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed Jun 3 12:42:27 2026 +0800

    qtvcp: probe for notification daemon before wiring dbus mainloop
    
    Avoids use-after-free in dbus_connection_dispatch when no daemon
    owns org.freedesktop.Notifications (headless/no-GPU).

commit 678d99c39d3e97f9dc87bcc71351c87a5f355f78
Merge: 86ca25a1 cc5b4ca6
Author: BsAtHome <bertho@vagrearg.org>
Date:   Tue Jun 2 17:16:03 2026 +0200

    Merge pull request #4081 from grandixximo/docs/unified-build-output
    
    docs(build): unified output subtree under docs/build/

commit 86ca25a1d79b4a221a4f6ace86bf24faab0bb79f
Merge: 65bf1993 3dd42390
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 15:44:46 2026 +0100

    Merge pull request #4093 from Sigma1912/feature_g54_on_program_stop
    
    interp: add new ini setting disabling auto reset to G54 on M2,M30

commit cc5b4ca62c2b4c9f81830d25f89dba512599931a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun May 31 21:47:33 2026 +0800

    docs(build): drop build-time mandb whatis step
    
    Takes the cat[139]/index.db cruft and whatis-parse noise with it; the
    whatis database is a packaging concern (dpkg), not the doc build.

commit 2c50d213369de42baf14bea4af8e49c6110458f4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun May 31 18:56:38 2026 +0800

    docs: move docs/help/ under docs/src/help/
    
    Align with the rest of the doc source tree. Adjusts the po4a.cfg masters
    and the src/Makefile DOCS_HELP glob. Suggested by @hansu on PR #4081.

commit 7ca2dd1f3ce707a6d0dd1c98994d4afa5f545e38
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 10:43:46 2026 +0800

    docs(build): unified output subtree under docs/build/
    
    Emit all generated docs (HTML, PDF, adoc, man) under docs/build/ instead of
    scattering them across docs/html, docs/src and docs/man; source trees stay
    clean. PDFs land under build/html/<lang>/pdf/, each suffixed _<lang>.
    
    Also: consolidate the per-directory .gitignores into docs/.gitignore;
    inline mb2hal_HOWTO.ini into docs/src/drivers/ (drops the {fixturedir} hack,
    no pot/po churn); gen_complist checks the manpage source set, not rendered
    HTML; make pdfdocs idempotent; fix asciideps on absolute include paths.

commit 3dd423905a261b33e2e2ee76245bb3ddea7508b7
Author: david mueller <mueller_david@hotmail.com>
Date:   Sun May 31 19:20:47 2026 +0200

    Adds a new INI file setting to disable the automatic resetting of the current WCS to G54 on M2 and M30:
    
    [RS274NGC]
    DISABLE_AUTO_G54 = 1
    
    Note:
    This new setting defaults to '0' so this modification is opt-in and default behavior is unchanged.

commit 65bf1993eb9406d8707b07a95a7e2c1739d2cdb7
Merge: 44150636 c85f33e5
Author: BsAtHome <bertho@vagrearg.org>
Date:   Tue Jun 2 16:04:06 2026 +0200

    Merge pull request #4102 from grandixximo/fix/issue-4101-sbins1000
    
    latency/histo binstream: fix FIFO sizing and fail visibly on error

commit 44150636b0406605abe7b738a9b68212d9025408
Merge: 64ee6491 4a3e0d06
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 13:42:01 2026 +0100

    Merge pull request #4104 from grandixximo/docs/checkref-no-false-pass
    
    docs: make HTML link checking actually run, and never false-pass

commit 64ee64915fee570a9199c4088159fdaa840f75d1
Merge: 1a93a308 f74a706a
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 13:32:26 2026 +0100

    Merge pull request #4076 from grandixximo/fix/gmoccapy-sigterm-clean-exit
    
    gmoccapy: exit cleanly on termination signal instead of error dialog

commit 1a93a308d2dad0ebd0971da51f13e4c0193fffab
Merge: c03075e9 8baf3b58
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 13:24:41 2026 +0100

    Merge pull request #4095 from grandixximo/fix/m99-mdi-segfault
    
    fix(interp): don't fseek(NULL) on M99 in MDI

commit c03075e9d7f2be13f838456fbb2d29bd88a9bb4b
Merge: 7355ac90 d03cca85
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 13:19:42 2026 +0100

    Merge pull request #4089 from hansu/optimize-asciidoctor-docs
    
    Optimize docs

commit 7355ac90a798cedc9a5b9f84ad4114f31efcf35d
Merge: b71a7495 519e27a8
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 13:05:15 2026 +0100

    Merge pull request #4100 from grandixximo/docs/fix-xref-compat-mode
    
    docs: fix cross-document xref links broken under compat-mode

commit b71a7495fb28b42afe7413f4c994a5a0555f5028
Merge: 81a21461 b432211d
Author: andypugh <andy@bodgesoc.org>
Date:   Tue Jun 2 13:03:13 2026 +0100

    Merge pull request #4105 from grandixximo/docs/fix-last3-xrefs
    
    docs: fix two broken cross-reference targets

commit 4a3e0d06ba134db8bd7866bdb3cd33ce40b20dac
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 10:22:44 2026 +0800

    docs: make HTML link checking actually run, and never false-pass
    
    Doc link checking has been a silent no-op: recent w3c-linkchecker refuses
    file:// URIs, so checklink returned an error with no broken-link marker
    and checkref reported "all links are good!" without inspecting anything.
    This is how broken cross-document links reached the published docs.
    
    - checkref: pass --follow-file-links so checklink actually inspects the
      local files (and validates cross-document fragments).
    - checkref: stop reporting success when checklink did not validate a file
      (nonzero exit or error output); skip with a warning and only vouch for
      files actually checked, warning instead of passing if none were. Never
      fail the build on an unusable checklink (environment problem).
    - Submakefile: run checkref with --warn-on-failure for now, since the
      long no-op may have let broken links accumulate; report them without
      breaking the build. Drop the flag once the backlog is cleared.
    - linuxcnc-checklink.in: fail clearly when @CHECKLINK@ is empty instead of
      "exec: : Permission denied".

commit 519e27a898458ef376a81fe7a13e3e15d83925f3
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 18:35:08 2026 +0800

    docs(xref): resolve cross-document references under compat-mode
    
    The docs build with -a compat-mode (for the legacy asciidoc-py source),
    which disables asciidoctor's native inter-document xref syntax: a bare
    <<anchor,Title>> to an anchor in another file rendered as a literal
    in-page link (tools.html#tutorial.adoc#cha:hal-tutorial) and 404'd.
    
    This preprocessor rewrites such cross-document references to a link:
    macro, which compat-mode leaves intact, with .adoc rewritten to
    outfilesuffix.  It:
    
    - captures each anchor's reference text (explicit [[id,reftext]] or the
      following heading) so bare <<anchor>> uses still render a label, since
      link: has no automatic reftext;
    - redirects anchors defined in include::d partials to the page they
      actually render into (the topmost non-Master_ ancestor), so e.g.
      <<sec:halshow>> points at tutorial.html, not the partial's own name;
    - handles xref titles containing markup: a lone '>' (as in
      <<id,[AXIS_<letter>] Section>>) no longer defeats the match, and ']' is
      escaped in the generated link: text (outside code spans) so bracketed
      titles like [DISPLAY] are not truncated.

commit b432211dd819d0008dc58fadcdfd2e73cdacef6f
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 15:10:07 2026 +0800

    docs: fix two broken cross-reference targets
    
    Broken links surfaced once HTML link checking actually runs (companion
    to the checkref fix, #4104):
    
    - qtvcp-widgets.adoc: link to halcmd.1.html#COMMANDS; the section's
      generated id is _commands.
    - linuxcncrsh.1.adoc (x3): links to #_linuxcnc_subcommands; the
      SUBCOMMANDS section's generated id is _subcommands.

commit 81a21461c464b37a8c68a80ebb38b03eaec813e3
Merge: 10a20aee 9048251b
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Tue Jun 2 08:51:38 2026 +0200

    Merge pull request #4103 from grandixximo/docs/fix-dangling-xrefs
    
    docs: fix malformed and dangling cross-references

commit 10a20aee3bcfa8995ba7f75067ceb3565ac9dc74
Merge: 453517a0 e82b5bbb
Author: c-morley <c-morley@users.noreply.github.com>
Date:   Mon Jun 1 20:46:18 2026 -0700

    Merge pull request #4097 from grandixximo/fix/qtvcp-help-headless-startup
    
    qtvcp probe help: load first help page lazily

commit 9048251ba5b1fe71ab2192d9e420bfc33c6007ec
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 09:47:48 2026 +0800

    docs: fix malformed and dangling cross-references
    
    Five source-level xref bugs found while auditing the cross-document
    links (independent of the resolver):
    
    - qtvcp-widgets.adoc (x2), qtplasmac.adoc: <<id>>[Label] is malformed;
      the bracket leaked as literal text after the link. Use <<id,Label>>.
    - o-code.adoc: <<Numbering>> had no matching anchor (the section's
      auto-id is _numbering), so it rendered as literal [Numbering]. Add an
      explicit [[ocode:numbering]] anchor matching the file convention.
    - pncconf.adoc: <<sub:install:sec:latency-test,...>> used a stale prefix;
      the real anchor is sec:latency-test.
    - remap.adoc: drop a commented-out line carrying a dangling
      <<remap:extracting-words>> ref, so nobody copies the broken form.

commit c85f33e5e984d28a22b31ad2b6b99302fee4e60c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 09:32:19 2026 +0800

    latency/hal-histogram: fail visibly instead of opening broken
    
    The stream read loop only printed to the console on error and returned,
    so a hard FIFO sizing error left the window open and silently
    non-updating while spamming the console every cycle (the symptom in
    issue #4101 before the FIFO fix).
    
    Treat the two error kinds differently:
    - stream-error (FIFO too small) is unrecoverable, so pop up a dialog and
      quit via a new fatal proc, matching the existing availablebins check.
    - a plain timeout may be transient, so warn once with a popup after it
      persists rather than only logging to the console.

commit a207ac8332324c4967b2a7c3b5f163e8ef1291a3
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 09:25:24 2026 +0800

    histobinstream: size stream FIFO for a full data set
    
    Same off-by-one as latencybinstream: the FIFO held MAXBINNUMBER+2
    records, but the hal_stream ring buffer reserves one slot, so usable
    capacity is depth-1. At the max 200 bins the last of the 202 records
    overruns and hal-histogram times out with --nbins 200. Add one slot.

commit f139117ff40cc95a19d3f5b0a274f4ef494b1701
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue Jun 2 09:20:28 2026 +0800

    latencybinstream: size stream FIFO for a full data set
    
    The FIFO held 2*MAXBINNUMBER+1+2 records, but the hal_stream ring buffer
    reserves one slot, so usable capacity is depth-1. At 1000 bins the last
    of the 2003 records overruns, the reader times out, and latency-histogram
    fails with --sbins 1000. Add one slot so a full set fits.
    
    Fixes #4101

commit d03cca853f6b674cac80a2cc04308d551342aa64
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Tue Jun 2 01:43:48 2026 +0200

    docs -html: align image captions according to image alignment

commit 453517a065833dc05efaa44a9023a632c86e59b9
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Fri Nov 1 21:06:00 2024 +0100

    docs: improve description of abs man pages

commit 1986796c9e0b0fbe3e7c3be5ba3756511931c289
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun May 31 22:45:34 2026 +0200

    docs: collapse all chapters on the main page except the first one

commit ce83d54d11f08e0177e70ab874b6e277a0c4e36e
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Mon Jun 1 22:59:25 2026 +0200

    pncconf: remove string from translation

commit b1fea7db9c6a21de8a4ce20836b6a38f47e39373
Author: Peter Stolz <50801264+PeterStolz@users.noreply.github.com>
Date:   Mon Jun 1 16:23:15 2026 +0200

    configs: uppercase woodpecker_xyzab GEOMETRY value
    
    GEOMETRY is uppercased at parse time (axis.py, gremlin), so this is a
    cosmetic change to match the uppercase convention used across the INI
    files and this config's own COORDINATES = XYZAB.
    
    Addresses review feedback on PR #4092.

commit b677997213f14aa7a3e2f1432d8c8048f1ede02e
Merge: 9ea5282c 34fa4e1a
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:54:21 2026 +0200

    Merge pull request #4079 from grandixximo/fix/touchy-redraw-flood
    
    touchy: stop pegging the X server with redundant button relayouts

commit 9ea5282ce247321af0602cf42f98b27d442e1f35
Merge: 199c4d3e 3afe464c
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:53:49 2026 +0200

    Merge pull request #4077 from grandixximo/fix/touchy-sigterm-clean-exit
    
    touchy: exit cleanly on SIGTERM

commit 199c4d3ebceaf94aa1f699d3656387ebe3cb02a7
Merge: 7e012492 156868da
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:32:17 2026 +0200

    Merge pull request #4075 from grandixximo/fix/gtk_action-return-in-finally
    
    gladevcp: move return out of finally in SAVE_PROGRAM

commit 7e0124925e078d38c11654e8378c2518b316e6c4
Merge: da1e8669 c1230ccd
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:31:38 2026 +0200

    Merge pull request #4073 from grandixximo/fix/touchy-debug-ascii-nml
    
    sim/touchy: disable EMC_DEBUG_TASK_ISSUE logging (DEBUG=0)

commit da1e86690ca911641be68ddc624d9b05ad732561
Merge: aca2c8ed f173ca0f
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:30:53 2026 +0200

    Merge pull request #4057 from grandixximo/docs/architecture-svg-light
    
    docs: re-export Architecture C1 SVG with light theme only

commit aca2c8ed1194bbd1e4c819871cb3ea77c2fe141e
Merge: d37a3da0 6e11044a
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:29:21 2026 +0200

    Merge pull request #4080 from BsAtHome/fix_doc-hal-updates
    
    docs: Update and extend HAL API documentation after HAL module updates

commit d37a3da01b0d26e8f4603aeed87d5d95b71c6dfe
Merge: b92adf90 6880aacb
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:27:20 2026 +0200

    Merge pull request #4090 from grandixximo/histogram-lh-chart
    
    hal-histogram: drop BLT for Tcl/Tk 9, add race-free histobinstream comp

commit b92adf90a298a7811c1d076f5424b52f6dfc3d03
Merge: bf20900d b43f00e5
Author: BsAtHome <bertho@vagrearg.org>
Date:   Mon Jun 1 15:25:18 2026 +0200

    Merge pull request #4091 from grandixximo/fix/halcompile-adoc-extract
    
    build: extract halcompile manpages via adoc, drop troff sed hacks

commit e82b5bbb676cb33bba7bab1a417800793f26d5c5
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 1 16:15:14 2026 +0800

    qtvcp probe help: load first help page lazily
    
    Preloading the first help page at widget construction smooth-scales its
    images then, which can hang or crash qtvcp on a headless/no-GPU Qt
    platform. Defer it to the first showDialog(); help is unchanged when
    opened.

commit 8baf3b5834fb698e826f6d5f5a4f33498329fb0b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon Jun 1 14:26:20 2026 +0800

    fix(interp): don't fseek(NULL) on M99 in MDI
    
    Task always enables loop_on_main_m99, so M99 entered as an MDI command
    took the Fanuc endless-loop branch in convert_stop() and called
    loop_to_beginning() -> fseek(settings->file_pointer, ...). In MDI no
    file is open, so file_pointer is NULL and milltask crashed with SIGSEGV.
    
    Require file_pointer != NULL for the loop branch; otherwise MDI M99 now
    falls through to the M2/M30 program-end path (already NULL-guarded). Add
    a defensive NULL check in loop_to_beginning() as well.
    
    Fixes #4094

commit bf20900daa881f476094d6b909955c0c3df342b1
Merge: 1c36c763 0c24fb2f
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sun May 31 23:10:49 2026 +0200

    Merge pull request #4086 from grandixximo/fix/asciidoctor-required-for-manpages
    
    build: hard-fail configure if asciidoctor is missing

commit a493f6304ffb8a633289a7c73c12643f09def137
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun May 31 11:29:47 2026 +0200

    docs: fix wrong formatting of blocks in man pages

commit 19e19e482be65a66ab1f5712830f40f60aa225b9
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun May 31 02:01:11 2026 +0200

    docs -pdf: optimize image width in PDF docs

commit 41b7196b9b4bd1d9b875736fb1929ec451aa1153
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun May 31 02:00:19 2026 +0200

    docs -pdf: set TOC level for PDF man pages to 1

commit b43f00e538f795ab6955e517d7c0f00e4e715e71
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun May 31 16:40:19 2026 +0800

    build: extract halcompile manpages via adoc, drop troff sed hacks
    
    Per @BsAtHome's review on PR #4086.  The old COMP_MANPAGES /
    COMP_DRIVER_MANPAGES rules ran halcompile in --document mode (troff
    straight out) and sed-edited the troff to escape .als / .URL groff
    directives the old dblatex-based PDF pipeline could not parse.
    Asciidoctor now reads the component adoc directly, so the sed hacks
    are obsolete.
    
    New chain:
    - halcompile --adoc -o objects/man/man9/<comp>.9.adoc <comp>.comp
    - asciidoctor --doctype=manpage --backend=manpage -> ../docs/man/man9/<comp>.9
    
    The adoc extraction only needs Python + halcompile.py (yapps-generated,
    not the C build), so a fresh-tree docs-only build (make htmldocs /
    pdfdocs / docs) extracts and renders component manpages without first
    compiling the rest of LinuxCNC.  Previously a docs-only build silently
    omitted them.
    
    Also adds homecomp.9 to COMP_MANPAGES alongside tpcomp.9 (both .comp
    files are filtered out of COMPS because they do not compile to .o
    modules, but their manpages are still worth shipping).  Surfaces in
    @hansu's review of PR #4081 as a 'gen_complist: Broken link:
    ../man/man9/homecomp.9.html' warning.
    
    .9.adoc suffix matches the convention the docs HTML manpage rule
    already expects under objects/man/.
    
    Tested: clean-tree make docs (English-only) builds 207 troff + 154
    extracted component adocs, link checker clean.  Standalone
    make ../docs/man/man9/abs.9 from a tree with no halcompile binary
    rebuilds halcompile and produces the manpage without touching C code.

commit 6880aacb89e0d036bc3cf0be1c3d3af22ba1d4e1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun May 31 20:16:24 2026 +0800

    histobinstream: adopt review rework from B. Stultiens
    
    Replace the comp implementation with the version Bertho Stultiens posted
    in review of PR #4090: cache the volatile input pins once per cycle, use
    real_t, keep input_error sticky until reset, and update the last_*
    trackers right after the accumulate block. The bin classification and
    first-sample seeding are unchanged. Also fixes his "som" -> "some"
    comment typo.

commit 8c77c32d91a8c87f3573fe5364c1505e37e421cb
Author: Peter Stolz <50801264+PeterStolz@users.noreply.github.com>
Date:   Sun May 31 14:00:55 2026 +0200

    configs: remove redundant same-value duplicate INI keys
    
    Follow-up to the previous commit. These configs repeat a key within one
    section with the *same* value. LinuxCNC uses the first occurrence, so the
    repeats are pure redundancy with no behaviour change -- removing them just
    de-clutters the configs.
    
    - [TRAJ] MAX_LINEAR_VELOCITY = 58 duplicated in:
      sim/axis/gantry/gantry.ini, sim/axis/gantry/gantry_jjog.ini,
      sim/qtaxis/gantry/qt_gantry.ini, sim/qtvcp_screens/qt_gantry.ini,
      sim/qtvcp_screens/qtdefault_gantry.ini
    - [RS274NGC] HAL_PIN_VARS = 1 duplicated in:
      sim/axis/vismach/scara/scara.ini,
      sim/qtaxis/non-trivial/scara/scara.ini,
      sim/qtvcp_screens/non-trivial/scara/scara.ini
    - [DISPLAY] GEOMETRY = XYZCBW duplicated in:
      sim/axis/vismach/5axis/bridgemill/5axis.ini
    
    The Sherline4Axis configs also have same-value duplicates, but they sit in
    a "# for gui only" block next to a conflicting MAX_LINEAR_VELOCITY that needs
    a separate decision, so they are left for a follow-up.

commit af6f62e9b00c9fcb7ad1b34d852cead3e5a5f119
Author: Peter Stolz <50801264+PeterStolz@users.noreply.github.com>
Date:   Sun May 31 13:42:57 2026 +0200

    configs: remove conflicting duplicate INI keys (first occurrence wins)
    
    LinuxCNC's INI reader returns the first occurrence of a key within a
    section (IniFile::findTag with num=1), so a second line with the same key
    in the same section is silently ignored. Several shipped sim/demo configs
    contain such duplicates where the later value is dead -- in a couple of
    cases masking the author's evident intent. The first-wins behaviour was
    confirmed on 2.10 with `inivar` and the linuxcnc.ini Python reader.
    
    - sim/axis/gladevcp/probe.ini: [RS274NGC] SUBROUTINE_PATH was set twice, so
      the second value (../../nc_files/gladevcp_lib -- the gladevcp demo's
      O-word subs) was ignored and those subs were unreachable. Merge both into
      one colon-separated SUBROUTINE_PATH.
    - sim/woodpecker/woodpecker_xyzab.ini: [DISPLAY] GEOMETRY = xyzab (added for
      this 5-axis variant) was overridden by a leftover XYZABCUVW; make xyzab
      effective. Also drop a duplicate [RS274NGC] PARAMETER_FILE.
    - sim/woodpecker/woodpecker_xyza.ini: drop a pasted-twice spindle-override
      block ([DISPLAY] MIN/MAX_SPINDLE_0_OVERRIDE).
    - sim/axis/histogram_demo.ini, ini_hal_demo.ini: drop a stray second
      [TRAJ] MAX_LINEAR_VELOCITY (1.2345) after 1.2.
    - sim/axis/vismach/5axis/bridgemill/5axis.ini: drop a redundant
      [TRAJ] MAX_ANGULAR_VELOCITY (360, identical to 360.0).

commit d0f3a15968fe37d1eafb2adc7cbbfa94d81b9a1d
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun May 31 01:54:59 2026 +0200

    docs -pdf: set image caption alignment according to image, center images by default

commit 1cd8996bfa1ae831a42b7cdc3583115be7f71b8d
Author: Hans Unzner <hansunzner@gmail.com>
Date:   Sun May 31 01:03:53 2026 +0200

    docs -html: remove upscaling of heading fontsize

commit a005ea61093d7ca6720baf2d52e08572bc421937
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun May 31 16:55:09 2026 +0800

    histobinstream: streaming comp for race-free hal-histogram snapshots
    
    histobins transfers one bin per cycle, so its snapshot is smeared
    across many milliseconds and the statistics can desync from the bins.
    Add histobinstream, the streaming counterpart modeled on
    latencybinstream: on the rising edge of the stream pin it pushes the
    whole histogram (negative tail, bins, positive tail) through a HAL
    stream and latches the scalar statistics, giving a consistent atomic
    snapshot. hal-histogram uses it by default and falls back to histobins
    with --legacy.
    
    The bin classification compares invalue against minvalue for the
    negative tail, because integer truncation of a negative quotient rounds
    toward zero and would otherwise land such samples in bin 0. It tests
    the computed bin index against nbins for the positive tail, avoiding
    the bin[nbins] out-of-bounds write that histobins performs when
    invalue == maxvalue.

commit a29beaf245c151f597293ff945b0fbc80bc0bebb
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sun May 31 16:55:09 2026 +0800

    hal-histogram, latency-histogram: replace BLT with Tcl/Tk canvas chart
    
    BLT has no Tcl/Tk 9 port. Extract the canvas-based lh_chart widget and
    window-capture helper into lib/hallib/lh_chart.tcl, shared by both
    tools. latency-histogram now sources it instead of carrying an inline
    copy; hal-histogram drops blt::barchart, blt::bitmap and blt::winop
    snap along with the hard BLT and Tclx requirements, so both run on
    Tcl/Tk 8.6 and 9 alike.
    
    Also remove the obsolete base_thread_fp advice from hal-histogram: the
    HAL uses_fp flag is deprecated and ignored, so all threads are
    FP-capable and no motmod option is needed.

commit 1c36c76308e267c833ab0a8e2d071ecbe5a45448
Merge: 7351e0ee 796962c5
Author: c-morley <c-morley@users.noreply.github.com>
Date:   Sat May 30 20:42:31 2026 -0700

    Merge pull request #4088 from PeterStolz/fix-versaprobe-help-image-paths
    
    qtvcp probe help: fix broken/blurry images and typos

commit 796962c5883f40c14f5aaed7ba462574ddde5bbb
Author: Peter Stolz <peter@detesia.com>
Date:   Sun May 31 02:25:48 2026 +0200

    qtvcp probe help: smooth-scale help images at load time
    
    The earlier "render help diagrams crisp at display size" change shipped the
    help diagrams pre-scaled to 500px in new probe_icons_help/ and
    basic_probe_help/ dirs to dodge QTextEdit's nearest-neighbour image scaling.
    That duplicated assets and orphaned the originals.
    
    Scale in the help-dialog loader instead: each raster <img> is pre-scaled to
    its requested width/height with a smooth (SmoothTransformation) filter and
    registered as a document resource, so Qt draws it 1:1 with no nearest-neighbour
    rescaling. SVG images are skipped so Qt's vector renderer can draw them crisply
    at any size.
    
    Point the versaprobe diagram pages back at the existing higher-resolution
    probe_icons_1024x768/ sources and the basic pages at their originals under
    widgets/basic_probe_help/, and drop the bundled pre-scaled copies. No new
    assets are added.
    
    Signed-off-by: Peter Stolz <peter@detesia.com>

commit 0c24fb2f02f506fb1ec5cc8c97b941ab63542864
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 22:15:18 2026 +0800

    build: require asciidoctor unconditionally for halcompile manpages
    
    docs/src/Submakefile builds manpages for halcompile components
    (5axisgui.1 etc.) regardless of --enable-build-documentation, so
    asciidoctor is always needed.  Promote the configure probe out of the
    BUILD_DOCS gate to a hard error (#4084), drop the <!nodoc> tag on the
    debian build-dep, and remove the now-duplicate asciidoctor entry from
    DOC_DEPENDS.

commit a2ea10d61c1a79b6cb60e5623e79a21231ae95f5
Author: Peter Stolz <peter@detesia.com>
Date:   Sun May 31 00:32:33 2026 +0200

    qtvcp probe help: fix typos in help text
    
    Correct several typos in the versaprobe and basic_probe help pages:
    
      versa pg3:  "distance too large"        -> "distance is too large"
      versa pg4:  "farther away then"         -> "farther away than"
                  "in Z .If the"              -> "in Z. If the"
                  "clearence" / "lowring"     -> "clearance" / "lowering"
      versa pg8:  "will automatically rotates"-> "automatically rotate"
                  garbled "Press only! corresponding to this position
                  button." -> "Press only the button corresponding to this
                  position." (matching the wording already on page 1)
      basic pg7:  capitalise sentence start
      basic pg8:  "imprial" -> "imperial", "These distance" -> "distances",
                  "it's start position" -> "its", and rename the stray
                  "EXTRA CLEARANCE" references to "EXTRA DEPTH" (the actual
                  field name used elsewhere on the page).
    
    Signed-off-by: Peter Stolz <peter@detesia.com>

commit 234e82f1c10307a93bbe324969ab4f1eb157672c
Author: Peter Stolz <peter@detesia.com>
Date:   Sun May 31 00:31:06 2026 +0200

    qtvcp probe help: render help diagrams crisp at display size
    
    The help dialogs (QTextEdit) upscale/downscale images with no smoothing,
    so the diagrams looked soft or pixelated: most pages forced width=500
    onto images of widely varying native sizes, and the versaprobe diagrams
    even pointed at tiny 300px thumbnails.
    
    Ship the diagrams pre-scaled to their 500px display width (Lanczos) in
    new probe_icons_help/ and basic_probe_help/ dirs and reference those, so
    Qt draws them 1:1 with no rescaling. Generalise the help-dialog image
    path rewrite from "../images/probe_icons/" to "../images/" so any image
    subdir resolves. Also centre the page-4 versaprobe image to match the
    other pages, and drop the width override on basic_probe page 4 (480px
    native, it was being upscaled).
    
    Signed-off-by: Peter Stolz <peter@detesia.com>

commit 020f14267686985aff6bcee256cd626fbde0bd03
Author: Peter Stolz <peter@detesia.com>
Date:   Sun May 31 00:30:15 2026 +0200

    qtvcp probe help: fix broken image paths
    
    The versaprobe (pages 4-7) and basic_probe (pages 7-8) help pages
    referenced their images through an absolute path baked into a
    developer's home directory (/home/chris/emc/share/qtvcp/images/...),
    which exists only on the original author's machine, so the images
    rendered as broken-file icons everywhere else. basic_probe page 6 also
    referenced its image without the .png extension.
    
    Point them at the existing assets via the relative "../images/" form
    the help-dialog loader rewrites to the runtime install path, matching
    the other help pages.
    
    Signed-off-by: Peter Stolz <peter@detesia.com>

commit 217cfb8fd9ce661e915471207068b6de3dc4e766
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Sat May 30 13:48:20 2026 +0200

    Remove rtapi_get_clocks(): Docs

commit 6e11044a19ebaa5744e32aff837874addc80e2e0
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Sat May 30 12:56:52 2026 +0200

    docs: Update and extend HAL API documentation after HAL module updates.

commit 7351e0ee04c88c211a2879a979a6a91c3fba0dbe
Merge: c3caef51 bf37860b
Author: c-morley <c-morley@users.noreply.github.com>
Date:   Sat May 30 06:54:01 2026 -0700

    Merge pull request #4078 from grandixximo/fix/qtvcp-sigterm-clean-exit
    
    qtvcp: exit cleanly on SIGTERM/SIGINT

commit 8f822cb36c425c3804cc9c7d7475e993ef16bdd3
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date:   Fri May 15 09:52:35 2026 +0200

    Remove rtapi_get_clocks()
    
    This function returns an arbitrary time base depending on CPU type / actual
    and frequency is thus not really usable. According to the doc, each core
    can have a different tsc value at the same time, thus it can randomly jump
    when core locking is not active.
    
    Testing shows, that rtapi_get_time() uses 20ns on
    6.12.86+deb13-rt-amd64, so no need to use rdtsc.
    
    5.4.302-rtai-amd64 uses 112ns which is a bit slower but should still be
    no issue.
    
    rtapi_get_clocks() needs approx 10ns, so it is faster but the impact
    should be negligible.

commit c3caef5118991ac6c897fca0c970dad95e9e8b4e
Merge: f01903da 239dd3fa
Author: BsAtHome <bertho@vagrearg.org>
Date:   Sat May 30 12:04:22 2026 +0200

    Merge pull request #4053 from grandixximo/docs/asciidoctor-migration
    
    docs: migrate documentation toolchain from asciidoc-py + dblatex to asciidoctor

commit 34fa4e1ad795489e4e286eaa7f21883b5259eafa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 14:31:00 2026 +0800

    touchy: stop pegging X server with redundant button relayouts
    
    periodic_radiobuttons() runs at 10 Hz and called set_label() directly on
    six buttons (wheelinc1-3, fo, so, mv) every cycle. gtk_button_set_label()
    unconditionally rebuilds the button's label child and queues a resize, so
    even when the text is unchanged each cycle forces a full window relayout
    and redraw. Headless under Xvfb this pegged the X server at ~95-110% CPU
    while touchy's own Python sat idle in the GTK main loop.
    
    Route these through the existing guarded set_label() helper, which skips
    the call when the label is unchanged. Idle touchy now leaves the X server
    near 0% with no change in displayed behaviour; the labels still update
    when the increment or override values actually change.
    
    Fixes #4070

commit bf37860b90210f7f5f4bfedd535c999a298bb311
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 11:27:01 2026 +0800

    qtvcp: exit on SIGTERM/SIGINT
    
    qtvcp registered self.shutdown as the SIGTERM/SIGINT handler, but two
    things stopped it working: Qt's C++ event loop (APP.exec()) does not
    return to Python often enough to run Python signal handlers, and
    shutdown() cleans up without quitting the loop, so even when reached the
    process kept running. A caller tearing qtvcp down therefore had to
    escalate to SIGKILL.
    
    Quit the event loop on the signal (APP.quit()) so APP.exec() returns and
    the existing post-exec shutdown() runs the normal cleanup once, and add a
    periodic no-op QTimer so the interpreter gets a chance to run the signal
    handler during exec(). Quitting the loop bypasses the window-close
    confirmation dialog, which is correct for a terminate request and leaves
    that interactive feature untouched.
    
    Fixes the hang for all qtvcp screens (qtdragon, qtplasmac, ...). Verified
    qtdragon exits cleanly on SIGTERM and SIGINT.
    
    Surfaced by the ui-smoke tests (PR #4054).

commit 3afe464c538e78c5626892ec82efa3614fe11a6b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 11:20:09 2026 +0800

    touchy: exit on SIGTERM
    
    touchy ignored SIGTERM (GLib/PyGObject absorbs the signal), so a caller
    tearing it down had to escalate to SIGKILL. Install a SIGTERM handler
    that quits the GTK main loop, deferring the quit to the loop via
    GLib.idle_add since GTK calls are not safe directly from a signal
    handler. atexit cleanup (child processes, prefs) still runs.
    
    This does not touch the interactive window-close path. SIGTERM is a
    system terminate request and should not require confirmation.
    
    Note: PyGObject still prints a benign KeyboardInterrupt on this shutdown;
    that is pre-existing (touchy printed it on SIGTERM before too, it just
    did not exit) and is emitted from PyGObject's C layer, so it is not
    suppressible from Python here.
    
    Surfaced by the ui-smoke tests (PR #4054).

commit f74a706adb28f453c6daa59cad1fe2b3e25a672e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:38:20 2026 +0800

    gmoccapy: exit cleanly on termination signal instead of error dialog
    
    gmoccapy did not exit on SIGTERM; callers had to escalate to SIGKILL.
    
    Root cause: PyGObject's signal bridge surfaces a termination signal into
    the GTK main loop as a Python KeyboardInterrupt. That propagated to the
    installed sys.excepthook, which unconditionally popped a modal
    'Found an error ... KeyboardInterrupt' dialog and blocked in the dialog's
    nested loop, so the process never quit.
    
    Handle KeyboardInterrupt at the top of excepthook: log it and quit the
    main loop instead of showing the modal error dialog. Verified that
    gmoccapy now exits cleanly on SIGTERM (no SIGKILL escalation, no spurious
    error-dialog traceback). The previous broken 'except KeyboardInterrupt'
    on the window lookup (which could never fire there) is removed.
    
    Surfaced by the ui-smoke tests (PR #4054).
    
    Fixes #4069

commit 156868da5ae3319ad53dad1502a6a5492a0c9be1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:07:38 2026 +0800

    gladevcp: move return out of finally in SAVE_PROGRAM
    
    gtk_action.py had 'return npath' inside a finally: block. A return in
    finally swallows any in-flight exception and overrides earlier returns,
    so the except branch's 'return None' (the error path) was always
    clobbered: a failed save still returned the path and hid the exception.
    
    Dedent the return out of the finally so the finally only closes the
    file. On success the function returns npath; on a write error it now
    correctly returns None. Also silences the Python 3.12+
    SyntaxWarning: 'return' in a 'finally' block.
    
    Surfaced by the ui-smoke tests (PR #4054).
    
    Fixes #4067

commit 239dd3fa1f451b414b807375ed76c19aab837dc7
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:25:00 2026 +0800

    ci: enable translated docs build in build-doc.sh
    
    Pass --enable-build-documentation-translation to configure so the docs
    CI builds the translated HTML/PDF set, not only English.  Exercises
    the po4a / per-language pipeline end-to-end on every PR.

commit 75f41e4b40a4d65092bc98318ffbe25b81e7f3b9
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:24:54 2026 +0800

    build: misc hygiene (gitignore, autom4te.cache, manpage images)
    
    - .gitignore: drop nocheck workaround, ignore autom4te.cache,
      .checklink.*.tmp leftovers from docs/src/checkref.
    - docs/src/.gitignore: ignore generated objects/.fonts and per-lang
      build leftovers.
    - docs/man/images/Images_info.adoc: small note refresh.

commit 2f6b1179b3e4f979a107e5035a326748b2759efe
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:24:44 2026 +0800

    docs: rewrite gen_complist.py + po4a.cfg for per-language aliases
    
    - gen_complist.py: produce content-stable mtime via write_if_changed
      helper and single-write add_links.  Bertho identified that
      components_gen.adoc was being rewritten with HTML-existence-
      dependent content every build, bumping documentation.pot's mtime
      and making po4a look like it ran twice.
    
    - po4a.cfg: master config sourced for per-language target lists in
      the Submakefile (LANGUAGES derives from po4a_langs entry).
      AsciiDoc_def / man_def / xhtml_def / Text_def aliases for the
      asciidoctor pipeline.

commit a15ea32857c64076654ff00f11fed63a7114c641
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:24:37 2026 +0800

    docs: source content fixes for asciidoctor parser
    
    Adjust .adoc sources where asciidoctor's parser is stricter than the
    legacy asciidoc-py, where INI/HAL/NGC examples were malformed enough
    that the new Rouge highlighters exposed the breakage, or where blank
    lines were missing before * bullet lists (asciidoctor requires them).
    
    Touches docs/src/{code,config,drivers,examples,gcode,gui,hal,ladder,
    lathe,motion,plasma,remap,tooldatabase,user}/*.adoc, docs/src/man/man9
    manpage sources, docs/help/tklinuxcnc.adoc, and a table cell merge
    fix in src/hal/components/lut5.comp.  Also a small per-language
    asset swap (control-point_es.svg).

commit 4573422f2c5501c0a98a1ecfe43ca59e23fee50f
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:24:16 2026 +0800

    docs: migrate doc build rules to asciidoctor toolchain
    
    Replace the legacy asciidoc-py + dblatex + xsltproc pipeline with
    asciidoctor + asciidoctor-pdf + Rouge.  HTML built via asciidoctor,
    PDFs via asciidoctor-pdf, manpages via asciidoctor manpage doctype
    (troff) plus html5 backend.  Manual_Pages.pdf assembled from a
    generated master document including every PDF_MAN_ORDER entry as a
    chapter (leveloffset=+1, hard page break per entry).
    
    - docs/src/Submakefile: rewrite around asciidoctor + Rouge.  Per-
      language target lists derived from po4a.cfg.  Idempotent build:
      stamp-gated copy_asciidoc_files / gen_complist / checkref, content-
      stable mtimes via touch on .pot regen, .SECONDARY for translated
      Master_*.pdf so leaf rules don't churn.  CJK font discovery via
      fontconfig (NotoSerifCJK .ttc) + DejaVu Sans Mono symlinks under
      objects/.fonts/.  Rouge theme rendered from the Rouge API at build
      time, single-mode fallback for older Rouge without light!/dark!.
      Manpage HTML resolves troff .so aliases via symlink, falls back to
      objects/man for halcompile-generated component adocs.
    
    - debian/rules.in: per-lang translated PDF cleanup loop derived from
      po4a.cfg; comment about gcode.html lang tree.
    
    - src/Makefile.inc.in: drop legacy asciidoc-py / dblatex variables.
    
    Drop legacy infrastructure:
      asciidoc-dont-replace-arrows.conf, attribute-colon.conf,
      docbook.conf, docbook-image.conf, emc2.sty, html-images.xslt,
      html-latex-images, image-wildcard, links.xslt, links_db_gen.py,
      xhtml11.conf + xhtml11-{head-foot,latexmath,links}.conf,
      source-highlight/ (replaced by Rouge), scripts/inkscape rsvg shim
      (asciidoctor handles SVG natively).

commit 91d3f4ea773bb262e1796ef4b19d0c0a6c2234f8
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:23:48 2026 +0800

    build: probe optional docs deps; graceful disable, hard-fail explicit
    
    - src/configure.ac: probe ruby-rouge, python3-fonttools, and
      NotoSerifCJK fontconfig path portably.  When BUILD_DOCS_HTML or
      BUILD_DOCS_PDF was requested without --enable-X explicit and a dep
      is missing: warn and disable that target.  When the user explicitly
      passed --enable-build-documentation=pdf with deps missing: fail
      hard (don't silently produce no PDFs).  Same hard-fail for any
      explicit PDF request, not only =pdf.
    
    - debian/configure: regenerate Build-Depends-Indep with asciidoctor
      toolchain (ruby-asciidoctor, ruby-asciidoctor-pdf, ruby-rouge,
      python3-fonttools, fonts-dejavu, fonts-noto-cjk) replacing the
      asciidoc-py / dblatex / xsltproc stack.
    
    - debian/control.top.in: expand @DOC_DEPENDS@ accordingly.

commit 96863d746d879b5175931a68e92f9376bfc1ccf5
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:23:39 2026 +0800

    docs: portable CJK font (CFF -> TTF) converter
    
    Builds a TrueType (glyf-based) copy of the Simplified Chinese cut of
    Noto Serif CJK from the system .ttc collection.  prawn 2.4 (used by
    asciidoctor-pdf) corrupts the PDF when asked to embed CFF outlines, so
    we convert the curves with cu2qu (python3-fonttools) first.
    
    Subsets to the glyph set actually used by the docs to keep the font
    small.  Scans both docs/src and the po catalogues, so the subset
    holds the translated text too.  Without this, a fresh build's subset
    would come up empty and the converter would fall back to the full
    ~65k-glyph face (~200s vs ~1.5s).

commit 3c0364eb6faa55d9d4e8af423a68e89d33e7f8e8
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:23:31 2026 +0800

    docs: HTML/PDF theme CSS overrides and docinfo
    
    - lcnc-overrides.css: theme on top of asciidoctor's default stylesheet.
      Light + dark via prefers-color-scheme (no toggle, no JS).  Heading
      colors #1a3a6c (incl. #header h1 per hansu).  Uniform listing
      background, inline code rounding, dark-mode SVG card wrapper.
    - pdf-theme.yml: asciidoctor-pdf theme; CJK + DejaVu fonts.
    - docinfo.html: shared docinfo for asciidoctor (docinfo=shared).
    - docs/html/index.css, linuxcnc.css, gcode.html: static landing-page
      styling refresh; removes external font fetches.
    - docs/src/index.tmpl: master HTML index template polish (JS-free per
      bertho's patch); @TRANSLATIONS@ / @ENDTRANSLATIONS@ gated by build.

commit 64920485074805c31cbe558bf30d9da251e590f4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:23:10 2026 +0800

    docs: add asciidoctor extensions for image lookup and cross-doc xrefs
    
    - image_resolver.rb: treeprocessor that resolves image targets the way
      the asciidoc-py build did (per-language tree with English fallback).
      Auto-substitutes foo_en.ext -> foo_<lang>.ext.  No DEFAULT_LANGS
      fallback; requires the doc-languages attribute set from po4a.cfg.
    
    - xref_resolver.rb: preprocessor that resolves bare <<anchor,Title>>
      cross-document references to the right per-document HTML target.

commit 6b4d436e840798016da5f024704638687c481c9c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:23:03 2026 +0800

    docs: add Rouge syntax highlighters for HAL, NGC, INI
    
    Three custom Rouge lexers for LinuxCNC's domain-specific languages,
    loaded by asciidoctor via -r flags in the build rules.
    
    - rouge_hal.rb: HAL component / pin / signal syntax
    - rouge_ngc.rb: G-code (RS-274NGC) with special-case handling for
      LinuxCNC #<_ini[...]NAME> and #<_hal[...]> parameter references
    - rouge_ini.rb: INI config syntax with # comment support

commit c1230ccd07059e52291e1ab3c36dc660b76b71fa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Sat May 30 09:06:43 2026 +0800

    sim/touchy: disable EMC_DEBUG_TASK_ISSUE logging (DEBUG=0)
    
    touchy.ini was the only sim config shipping a non-zero DEBUG (0x10 =
    EMC_DEBUG_TASK_ISSUE). That flag makes task log every issued NML command
    as an ASCII string via emcCommandBuffer->msg2str(), which lazily creates
    a CMS_DISPLAY_ASCII_UPDATER and prints its scary 'may not function
    properly due to range limitations' banner on startup.
    
    The emcCommand buffer is correctly xdr-encoded; the ASCII updater is only
    a temporary string-conversion helper for the debug log. Setting DEBUG=0
    (matching axis and gmoccapy sims) stops the task-issue logging and the
    spurious banner. No functional change to touchy.
    
    Surfaced by the ui-smoke tests (#4054).

commit f01903dac473934cc3b1f6ba7391c2619ee0a2b1
Merge: caf0224d da53107a
Author: BsAtHome <bertho@vagrearg.org>
Date:   Fri May 29 20:27:08 2026 +0200

    Merge pull request #4061 from BsAtHome/fix_hal-port-pyhal-deprecate
    
    hal: Deprecate pyhal and move functionality into hal module

commit caf0224da450082f1ab41f1fcccc6df81db6995f
Merge: 9b0cf953 35b5ca0f
Author: BsAtHome <bertho@vagrearg.org>
Date:   Fri May 29 10:06:40 2026 +0200

    Merge pull request #4066 from BsAtHome/fix_libcap-depend
    
    build: fail configure if libcap-dev is missing

commit 35b5ca0f68ef772bff9d1559d79a672eb4a1ccd4
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Fri May 29 08:42:20 2026 +0200

    build: fail configure if libcap-dev is missing.

commit 9b0cf9535b84159646bfd404d607c8b626849481
Merge: 6d96c26c d955fc20
Author: BsAtHome <bertho@vagrearg.org>
Date:   Thu May 28 16:34:09 2026 +0200

    Merge pull request #4064 from grandixximo/qtvcp-sys-notify-close-on-init-fail
    
    qtvcp: close dbus bus when sys_notify init fails

commit d955fc208b30a6324e77d92e02494fa15fdd2097
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu May 28 20:15:32 2026 +0800

    qtvcp: close dbus bus when sys_notify init fails
    
    If `init()` constructs `dbus.SessionBus(mainloop)` with the
    PyQt5/PyQt6 mainloop integration and the subsequent
    `bus.get_object(org.freedesktop.Notifications, ...)` call raises
    (e.g. `org.freedesktop.DBus.Error.ServiceUnknown` when no
    notification daemon owns the name), the Python reference to `bus`
    is dropped on the exception, but dbus-python's mainloop layer has
    already attached a `QSocketNotifier` to the connection fd. That
    notifier keeps the C-level connection alive in a half-initialized
    state. On the next Qt event-loop tick, the queued reply is
    dispatched via `dbus_connection_dispatch()` and segfaults inside
    `_dbus_list_unlink` because the connection's internal queue is no
    longer in a consistent state.
    
    Close the bus explicitly on the failure path so the socket
    notifier detaches and the connection is released cleanly. The
    `Desktop Notify not available` warning continues to be the only
    user-visible side effect.
    
    Reproduced on Ubuntu 24.04 CI under xvfb + offscreen Qt where no
    session-bus notification daemon is present; gdb -batch captured a
    Thread 1 backtrace ending in `dbus_connection_dispatch` ->
    `_dbus_list_pop_first_link` -> `_dbus_list_unlink` (segv).

commit 6d96c26c3ebe1d25a65839e5fc742d0311783393
Merge: daf366a2 9cf118c3
Author: BsAtHome <bertho@vagrearg.org>
Date:   Thu May 28 14:14:32 2026 +0200

    Merge pull request #4062 from grandixximo/fix/qtvcp-shutdown-segv
    
    qtvcp: stop QPin update timer before hal_exit to prevent shutdown SIGSEGV

commit 9cf118c33bbc20e045a062d79a03a16337b9595e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Thu May 28 11:10:51 2026 +0800

    qtvcp: stop QPin update timer before hal_exit to prevent shutdown SIGSEGV
    
    On Ubuntu 24.04 (glibc 2.39) shutting down a qtvcp screen can SIGSEGV
    because the QPin polling timer keeps firing after hal_exit detaches HAL
    shared memory.
    
    Path: qtvcp.py shutdown() calls HAL.exit() -> _hal.component.exit() ->
    hal_exit(comp_id). When the last component exits, hal_lib.c calls
    rtapi_shmem_delete, unmapping HAL shmem. QPin.REGISTRY still holds Python
    QPins whose pyhalitem.pin.u is a value-snapshot pointer into that shmem,
    and the QPin.update_all QTimer is never stopped, so its next tick
    dereferences an unmapped page.
    
    Older glibc/kernel combinations happened to keep the pages around after
    detach, hiding the bug.
    
    Fix: stop the QPin update timer before HAL.exit().

commit daf366a2a2ab895fd041eeb81e7e9627ef225ce2
Merge: 7b68c9eb 4099ee26
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed May 27 23:17:29 2026 +0200

    Merge pull request #3964 from grandixximo/nosetuid
    
    Rootless uspace preempt-rt (rebase of #918, fixes for #3928)

commit 7b68c9eb667046295b2d2c2d95996265f7ce7322
Merge: 5cd44d77 cecbde3a
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed May 27 17:20:45 2026 +0200

    Merge pull request #4056 from grandixximo/ci/concurrency-and-parallel
    
    ci: cancel in-flight runs on PR push

commit cecbde3a940907e3a50574201f4981048c64cf5c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Mon May 25 13:27:47 2026 +0800

    ci: cancel in-flight runs when a new push lands on the same PR
    
    Add a concurrency block keyed on workflow + ref so a fresh push to a pull request automatically cancels any still-running prior run for that ref. cancel-in-progress is gated on the pull_request event, so master / release / check_suite triggers are left alone (they should never cancel themselves).

commit f173ca0fd0de1570b055561bf4ad37065cdd0543
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Tue May 26 12:49:27 2026 +0800

    docs: re-export Architecture C1 SVG with light theme only
    
    The diagram was previously exported by draw.io with a light/dark
    color-scheme hint and per-element light-dark() fills/strokes.  On a
    system in dark mode the browser swaps the canvas and per-element
    colors, making the white-on-white box fills unreadable.  The classic
    LinuxCNC HTML docs have no dark theme, so the SVG must always render
    in light.
    
    Re-exported with draw.io's light theme forced: color-scheme is now
    light only and there are no light-dark() wrappers.

commit 5cd44d7723df218ed1e91e98430d560072f66e09
Merge: 648daa4a 12604901
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed May 27 11:51:34 2026 +0200

    Merge pull request #4059 from grandixximo/docs/bullet-blanks
    
    docs: blank line before paragraph->bullet boundaries

commit 648daa4a2088deaa459ce5fa56fd0616b204c239
Merge: baa84458 6f157548
Author: BsAtHome <bertho@vagrearg.org>
Date:   Wed May 27 11:49:17 2026 +0200

    Merge pull request #4060 from grandixximo/fix/4058-ui-smoke-sound
    
    test: suppress audio output in ui-smoke launcher

commit 6f1575486f43111f763327979829ceb4dc87c876
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed May 27 11:46:29 2026 +0800

    test: suppress audio output in ui-smoke launcher
    
    xvfb isolates X but not sound, so gmoccapy and qtdragon beep on CI
    hosts with a real sound card. Belt-and-braces silencing:
    
      ALSA_CONFIG_PATH         route ALSA default to null pcm
      CANBERRA_DRIVER=null     disable libcanberra (GTK event sounds)
      GST_PLUGIN_FEATURE_RANK  demote every Audio/Sink so playbin's
                               autoaudiosink falls back to internal fakesink
      PULSE_SERVER=/dev/null   block direct pulse client connections
      SDL_AUDIODRIVER=dummy    silence SDL apps
    
    Closes #4058.

commit da53107a52e791db086d4ae4a8e0eec7911837e1
Author: Bertho Stultiens <bertho@vagrearg.org>
Date:   Wed May 27 06:53:51 2026 +0200

    hal: Deprecate pyhal and move functionality into hal module.

commit 126049017c103880ef6126901ef709543be1f996
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date:   Wed May 27 10:09:00 2026 +0800

    docs: add the missing blank line before * bullets in source
    
    A column-0 '* ' bullet that follows a column-0 paragraph with no
    blank line between gets folded into the paragraph and no list is
    rendered. Insert the blank at those 30 boundaries (9 files).

commit baa844589b19187c1bc682c7be5692b3d4966055
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Mon May 25 13:07:55 2026 -0700

    hal_bridge -update the reading of ini-macro-cmd information

commit 423459146dcf65f4e2a2c2da75209600340eefbc
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Mon May 25 12:27:31 2026 -0700

    qtdragon -docs: add more info on macro buttons

commit 7beb28ae4aa714ebbf60fc2c1989bbd0763ba5f2
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date:   Mon May 25 09:55:41 2026 -0700

    qtdragon/hd/vert/lathe -add run macro button
    
    A user macro can get user entered data at run time.
Created: 2025-03-16 Last update: 2026-06-03 22:01
Standards version of the package is outdated. wishlist
The package should be updated to follow the last version of Debian Policy (Standards-Version 4.7.4 instead of 4.7.2).
Created: 2025-12-23 Last update: 2026-03-31 15:01
testing migrations
  • excuses:
    • Migrates after: python-poppler-qt5
    • Migration status for linuxcnc (- to 1:2.9.7-1): BLOCKED: Rejected/violates migration policy/introduces a regression
    • Issues preventing migration:
    • ∙ ∙ Updating linuxcnc would introduce bugs in testing: #1089809
    • ∙ ∙ 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 python-poppler-qt5 (not considered)
    • Additional info (not blocking):
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/l/linuxcnc.html
    • ∙ ∙ Autopkgtest for linuxcnc/1:2.9.7-1: amd64: Pass, arm64: Pass, i386: Pass
    • ∙ ∙ Required age reduced by 3 days because of autopkgtest
    • ∙ ∙ 212 days old (needed 2 days)
    • Not considered
news
[rss feed]
  • [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)
  • [2022-04-20] linuxcnc 2.9.0~pre0+git20220402.2500863908-4 MIGRATED to testing (Debian testing watch)
  • [2022-04-06] Accepted linuxcnc 2.9.0~pre0+git20220402.2500863908-4 (source) into unstable (Steffen Moeller)
  • [2022-04-06] Accepted linuxcnc 2.9.0~pre0+git20220402.2500863908-3 (source) into unstable (Steffen Moeller)
  • [2022-04-03] Accepted linuxcnc 2.9.0~pre0+git20220402.2500863908-2 (source) into unstable (Steffen Moeller)
  • 1
  • 2
bugs [bug history graph]
  • all: 11
  • RC: 1
  • I&N: 7
  • M&W: 3
  • F&P: 0
  • patch: 1
links
  • homepage
  • lintian (1, 51)
  • buildd: logs, cross
  • popcon
  • browse source code
  • other distros
  • 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