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 f108dbd3c96e6a7cede75e04c6ae0843eef9eb8b
Author: Hans Unzner <hansunzner@gmail.com>
Date: Mon Jun 8 00:00:03 2026 +0200
halscope: init "saved_vert_offset"
Addition to #4128 because of #3722
commit 5235a84f0042a45876d663cdf06b1ae0c36205dc
Merge: 59697b01 c7b37d0f
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 7 23:24:19 2026 +0200
Merge branch '2.9'
commit 59697b019a5cc12009987a510c7826f6b9d543b3
Merge: 4d0eeed8 2c61f67a
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 7 23:00:50 2026 +0200
Merge pull request #4131 from grandixximo/touchy-fit-monitor
touchy: fit the window to the monitor
commit 4d0eeed810e99071631d1c13e24c55998efbaa77
Merge: 58c57257 550d7e7b
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 7 18:46:29 2026 +0200
Merge remote-tracking branch 'weblate/weblate-linuxcnc-linuxcnc-docs'
commit 58c57257300b22f7657a4ee796c7c4b4562f3706
Merge: ae8b38d7 fc2ab34e
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Jun 7 17:01:19 2026 +0200
Merge pull request #4110 from grandixximo/docs/render-en-from-build
docs(build): render English and .dot SVGs into build/, keep docs/src clean
commit ae8b38d75be5a4de9f290f58d16389c1d3682041
Merge: cfa3a17b 04ef38c4
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Jun 7 15:39:42 2026 +0200
Merge pull request #4119 from hdiethelm/cppcheck_fail
CI: Fail on cppcheck.sh error
commit fc2ab34ec04f3a1995bd9be9528d983898967926
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 1 11:12:14 2026 +0800
docs(build): render .dot SVGs into build/, drop them from src
The .dot diagrams under docs/src/code/ rendered their SVGs beside the
sources; route them into build/adoc/en/<topic> instead, so docs/src holds
no generated artifacts. The translated image-copy steps source images from
src, so fall back to the English build tree for the generated SVGs. Drops
the six src/code/*.svg entries from docs/.gitignore.
commit c774b793f96eeed9353e5a5c2de8624acc0869b7
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 1 10:17:31 2026 +0800
docs(build): render English from build/adoc/en, keep docs/src clean
Per review (BsAtHome): generated files should not live in the source tree.
The English docs now render from build/adoc/en, the same model the
translations already use, instead of from docs/src.
- Stage the English .adoc + images + code fixtures (e.g. panelui_handler.py)
into build/adoc/en via a find|tar copy (no rsync dependency).
- Generate components_gen.adoc straight into build/adoc/en/hal and point its
po4a master there (po4a.cfg only; msgids unchanged, so no pot/po churn).
- Repoint the English HTML and PDF rules, the html-copy step, and the
dependency extractor at build/adoc/en.
docs/src no longer accumulates components_gen.adoc or per-topic .html;
docs/.gitignore drops those entries. The .dot-rendered SVGs are still
generated in src/code and staged across (a follow-on moves their generation
into build too).
Validated with a full English htmldocs build (585 pages, no include errors).
PDF and translated builds still to be verified.
commit cfa3a17b4185f784718aee1fa8ba8bf23f8f11a9
Merge: 5f10ab74 0b937cb5
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Jun 7 15:05:03 2026 +0200
Merge pull request #4113 from grandixximo/docs/topbar-greyout-on-build
docs(html): KiCAD-inspired topbar, side TOC, language switcher, admonition tints
commit 2c61f67aafb67529c46b01f5e396fbcd34e1d8f4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Jun 6 17:41:41 2026 +0800
touchy: fix resize, startup tab, drag-to-scroll, listing click error
- Window is now resizable smaller than screen (scroller max-content
bounds the top end; min stays 0).
- Startup tab restored correctly after page-wrapping loop shifted it.
- Each page scroller accepts drag-to-pan (finger or mouse, 8px
threshold so button taps are unaffected).
- Fix pre-existing TypeError in listing.on_select: button_release_event
passes (widget, event) but signature accepted only one argument.
commit 58331c79ca1b284e752f0ffe2c196b8d4ab29888
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 13:35:42 2026 +0800
touchy: fit the window to the monitor
Touchy has no scrolling, so when content is larger than the display the
window grows past the screen edge and controls become unreachable. The
worst offender is structural: a GtkNotebook sizes to its largest page,
so the small visible page (the buttons) was forced as wide as the hidden
Preferences page, and the tall tool-table listing grew the window on
reload.
- Wrap each notebook page in a scroller, so the notebook sizes to the
current page and oversized pages (Preferences, a long tool table)
scroll instead of growing the window. This alone keeps the height in
check and cuts the width from 1346 to 1094 px.
- Wrap the whole window in a scroller and bound it to the monitor work
area, so it can never exceed the screen.
- Hide the handwheel column on the Preferences tab (you are not jogging
there) so the wide settings page gets the full width.
- When the content still does not fit a narrow screen, float a
non-modal info bar over the content offering to shrink the fonts:
Shrink to fit and save / Not now / Never ask again. Accepting scales
to the largest fitting size, rounds to whole points, saves them, and
updates the pickers to match. It is only shown when it does not fit
and never repeated once it fits; Not now is remembered per screen
size (fit_skip_size) so it is not offered again until the screen
changes, and Never ask again (fit_fonts) disables it entirely.
- Add an 'Offer to shrink fonts to fit the screen' checkbox to
Preferences / Display Options to re-enable the offer after Never ask
again, and document the behaviour.
commit 04ef38c40959ceaa10fe9a738b521978adca5f37
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 20:54:02 2026 +0200
CI: Split into shell- and cppcheck job / fail on cppcheck
Now if one fails, you have still the result from the other.
commit 60b0e7bc84b7e1435cb2ad79cbf09e7bbefac4c1
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 19:00:28 2026 +0200
cppcheck.sh: Return 1 on error, so CI fails
Also add a message at the end, so it is clearly visible if it is good or
not.
commit 5f10ab741d1330f67055c6bdb8ecbf0fa37257b2
Merge: ca660748 566e655f
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:36:09 2026 +0100
Merge pull request #4098 from Sigma1912/fix_g52_g92_reset_on_m2
fix(interp): reset G52/G92 offsets on prog_stop when DISABLE_G92_PERSISTENCE=1
commit 0b937cb5f72c4cac5a4f4b703a2096f7dc8c7fa5
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 19:57:51 2026 +0800
docs: inset admonition icon mask so its top is not clipped
commit cf8ec666c22aaed8ab621c2652225069e74c5320
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 18:47:26 2026 +0800
docs: strip asciidoctor index terms from sidebar titles
commit 5924d63c2ac3d65b19a0f4a009c27fb4832d8ad0
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 16:25:25 2026 +0800
docs: restore page and sidebar scrollbars via scrollbar-color
commit db32422e122d4bc383f695876f0e11525095738a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 08:51:19 2026 +0800
docs: white-back PNG figures in dark mode too
Transparent black-line PNG diagrams vanished on the dark page; only SVGs
got a white backing. Back every figure with white (opaque screenshots
cover it, so no frame); keep the padded white card for SVGs.
commit f4889b592afbb042f2e375d82ae63d25f360d828
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 08:47:50 2026 +0800
docs: inject sidebar on English-only builds too
The whole-document sidebar and topbar were only injected when
BUILD_DOCS_TRANSLATED=yes, so an English-only build produced pages with
no navigation at all. The sidebar is derived from the Master_*.adoc
structure and is language-independent, so gate the post-processor on
BUILD_DOCS_HTML instead; with no languages the switcher and banner just
go idle. The post-processor now also accepts an empty language list.
commit 16b7dfa3d74e928c519cf07a4b24624262eca99e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 08:47:36 2026 +0800
docs: SVG admonition icons tinted per type
Replace the unicode-glyph admonition icons (font-dependent, often not
rendered) with Bootstrap Icons drawn as a CSS mask, painted with each
block's own colour so they tint per type in both themes. The word label
is kept off-screen as the accessible text. Adds the five SVGs to the
shared HTML assets and an Expat copyright stanza.
commit 6f2dafb021bc28d675ed3b2eee9592e49e98fded
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 20:30:00 2026 +0800
docs: active TOC page toggles its own sections inline
The active page is now the disclosure itself: its name is the summary
that folds its section list, instead of a separate "On this page"
block. Match summary size to the sibling links.
commit 00ad58c370f394694f22a3f046744df363b1af07
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 19:52:32 2026 +0800
docs: fold the nav tree down to the active page
Expand only the branch leading to the current page instead of the whole
book, and put the page's own section list in a collapsed "On this page"
details, so sibling pages in the section stay visible.
commit 602dc0a2cb52e25203ae0798111e80ee8df6fae1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 19:50:37 2026 +0800
docs: point the topbar logo at the current language's home
The logo linked to the generic index.html, which always redirects to
English; on a translated page that silently dropped the language. The
post-processor now retargets it to <lang>/index.html.
commit b2db6c4c1fa4d681e742eb1bc3ac55271e5b9263
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 19:28:40 2026 +0800
docs: keep the HTML doc build idempotent
The lang-switcher post-processor rewrites every generated HTML page in
place as the final step, which bumped their mtimes past three stamps that
had consumed the same files earlier in the build. A second make then
re-fired the image copy, the shared-asset copy and the complist stamp (and
the .htmldoc-stamp / checkref that depend on it), so the build never
settled.
- .html-images-stamp now depends on .lang-switcher-stamp, so it reads the
final post-processed HTML and stays newer than it.
- .copy-asciidoc-stamp's gcode.html dependency and .gen_complist-stamp's
MAN_HTML_TARGETS dependency become order-only: both only need the files
built, not their (later-rewritten) content.
A second and third make are now true no-ops.
commit 6809642a1813c04433e0b50c02d8eec7b142a32a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 15:18:29 2026 +0800
docs: move site links into the topbar
Add the LinuxCNC site links (Home, Wiki, Forum, Source, G-Code reference)
centred in the topbar so they are reachable from every page, and drop the
duplicate block from the landing page.
commit 43bc9aa4448443ea2a149393a3807be328db1bb2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 14:38:35 2026 +0800
docs: whole-document TOC tree in left sidebar
Build a nested nav tree from the Master_*.adoc structure and inject it at
the top of asciidoctor's left TOC (no JS, native <details>). Each page gets
the tree with its branch expanded, its entry active, and its own section
list nested under it. Section-less pages get a scaffolded sidebar. CSS-drawn
markers override asciidoctor's absolute summary marker so they stay in flow.
commit 0c5ad89d29c8f5a1ebb57278e3c39ca6849be88a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 09:57:00 2026 +0800
docs: per-page translation banner instead of greying switcher
Drop the POKEEP percent-threshold hiding: every present translation
stays clickable; the switcher only greys a target that does not exist.
A page below 100% now carries a no-JS banner below the topbar stating
its completeness, tinted red(0%) to green(100%).
commit 844514f632af11822f984cb02ace791509cd1bce
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 08:43:08 2026 +0800
docs: read switcher labels from lang-labels file, not Submakefile
Move the native language display names out of the makefile into
docs/src/lang-labels (tag<ws>name). A language in po4a.cfg without an
entry falls back to its tag with a make warning.
commit 7a8371e80733805dfc0c3d2637579eb1e568207b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 31 10:18:37 2026 +0800
docs(html): KiCAD-inspired topbar, side TOC, language switcher, admonition tints
Re-implemented on top of PR #4081's docs/build/ layout. Replaces the
previous prototype branch (commit 766f2d9103) which targeted the
pre-#4081 docs/html/ paths.
- Sticky topbar with LinuxCNC logo on every page; matches asciidoctor's
footer colour scheme. Logo SVG lives at docs/src/lcnc-docs.svg and is
copied into docs/build/html/ by the shared-asset rule.
- Side TOC via asciidoctor :toc=left; auto-hides below 800px (CSS).
- Language switcher in the topbar (top-right) built from po4a.cfg + a
LANG_LABEL_<lang> map in Submakefile, so po4a.cfg stays the single
source of truth.
- Admonition blocks (note/tip/warning/caution/important) tinted by
type with Unicode icons mapped onto asciidoctor's icons=font output
(no FontAwesome dep).
Build-time injection:
- docs/src/docinfo-header.html generated from .html.in template;
asciidoctor pages pick it up via docinfo=shared.
- docs/src/gcode.html renamed to gcode.html.in (po4a master); per-lang
docs/build/html/<lang>/gcode.html generated from po4a's gcode-raw.html
+ per-lang topbar fragment.
- Per-lang docs/build/html/<lang>/index.html similarly gets topbar
injection + CSS path rewrite + objects/index.incl appended so the
manpage list is present on translated indexes too.
- docs/src/index.tmpl's hardcoded Translations: list dropped; topbar
switcher replaces it.
- English + translated manpage HTML rules pass lcnc-lang-label and
lcnc-subpath so the switcher works on manpages.
Per-page language indication via lang_switcher_postprocess.py: walks
docs/build/html at end of build, looks up each page's master in each
lang's .po, counts msgid-with-master-loc vs translated, toggles
class=lcnc-lang-unavail on the <li> when coverage falls below POKEEP
(default 80). Same pass marks details-list entries (manpage index
lists) whose target file does not exist for the current language.
Idempotent: same toggle pattern across re-runs.
POKEEP is overridable on the make command line (POKEEP=30 surfaces
in-progress translations); contributing-to-linuxcnc.adoc,
building-linuxcnc.adoc, and docs/README.adoc document the knob.
CSS adds .lcnc-lang-unavail and .lcnc-link-unavail rules: dim text,
pointer-events: none, cursor not-allowed; .lcnc-link-unavail also adds
strikethrough for the index list context.
commit ca6607489152e7ed0fc10bfd7e97c7642ab284a1
Merge: d9d6c52c 48bbfa03
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:05:31 2026 +0100
Merge pull request #4106 from grandixximo/docs/copy-linked-images
docs: copy click-to-enlarge images, not just displayed ones
commit d9d6c52c5c97f68ea9f4d2d228a501078d1ab7a8
Merge: cd0b1bb1 57c09f22
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:04:46 2026 +0100
Merge pull request #4108 from grandixximo/docs/checkref-quiet-perl-noise
docs(build): filter checklink's Perl noise in checkref
commit cd0b1bb13c70ba0102d097d97d9f2c684babaa05
Merge: be7019e9 06df292e
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:03:44 2026 +0100
Merge pull request #4109 from grandixximo/docs/man-tree-on-build
docs(build): relocate generated manpages under docs/build/man/, build translated
commit be7019e916f692897c91c5e827fc75973e452c28
Merge: f0a1a665 0543c7a9
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:02:31 2026 +0100
Merge pull request #4111 from grandixximo/feature/nftables-support
hm2_eth: add nftables firewall backend
commit f0a1a665830345ccd772c27c94ecf594d8487841
Merge: a6cc37a9 fa249b49
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:02:08 2026 +0100
Merge pull request #4112 from grandixximo/feature/siocsarp-rootless
hm2_eth: don't abort board load when SIOCSARP is denied
commit a6cc37a99017556e4f0e8e09058cc929a46293bd
Merge: 34bd6d66 c3c06c6d
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 09:58:26 2026 +0100
Merge pull request #4116 from hdiethelm/fix_errors_not_printed
Fix errors not printed
commit 34bd6d666622f206c8f2dca69fd32656f0a17d80
Merge: 4e3e4d60 4e769083
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 09:57:14 2026 +0100
Merge pull request #4117 from hansu/build-output-man-pages
docs: proper output when building man pages
commit 4e3e4d606fc2297bc8ea03911deaf4cea43c0725
Merge: a3880341 b792ade9
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 09:55:17 2026 +0100
Merge pull request #4127 from hansu/gmoccapy-changes-as-notification
gmoccapy: show "Important changes" as notification instead of dialog
commit c7b37d0ff8520d83197f5f7b24df7d8e6e40c1b5
Merge: ec4e7773 84fe4999
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 09:53:10 2026 +0100
Merge pull request #4128 from hansu/halscope-fix-ac-setting-2.9
Halscope: Fix setting for AC coupling (2.9)
commit a38803412952e5842c1ee278e0500e945c09295d
Merge: 96c8578b 747b3153
Author: Rene Hopf <renehopf@mac.com>
Date: Sun Jun 7 10:47:03 2026 +0200
Merge pull request #4135 from hansu/touchy-gtk3
Touchy gtk3 conversion
commit 96c8578b1bd45a09504587e2dc0a4165d3fc095f
Author: Greg Carl <26096779+snowgoer540@users.noreply.github.com>
Date: Sat Jun 6 21:55:11 2026 -0400
qtplasmac: fix runaway jog when switching tabs while a jog key is held
Stop all active jogs and release keyboard grab on main tab change to prevent jogging from continuing when key release is not received due to focus loss.
commit 747b315395b57735fed8b5ca88de831b5a6f3048
Author: Hans Unzner <hansunzner@gmail.com>
Date: Fri Jun 5 22:51:17 2026 +0200
touchy: set button padding to 0 via CSS, replace status table by grid
commit f0155ec1af16af7de1f6a6d85d13a8df5b6b2727
Author: Hans Unzner <hansunzner@gmail.com>
Date: Fri Jun 5 21:49:34 2026 +0200
touchy: replace deprecated widgets VBox and HBox
commit fcffbd955d4093a57f816e0ccb539205ef08e462
Author: Hans Unzner <hansunzner@gmail.com>
Date: Fri Jun 5 21:34:22 2026 +0200
touchy: convert to Gtk3 with Glade 3.40
commit 81c3d892ba843993e3eae78d6efd54abaece848e
Merge: 106519fb a9ff6a4b
Author: andypugh <andy@bodgesoc.org>
Date: Fri Jun 5 20:24:27 2026 +0100
Merge pull request #4054 from grandixximo/ui-tests-phase2
test: ui-smoke phase 2, g-code execution and endpoint check
commit 106519fb3e01b3401f3592f9d78bdd9030e2e5ba
Merge: 888cb941 6e051245
Author: BsAtHome <bertho@vagrearg.org>
Date: Fri Jun 5 13:37:30 2026 +0200
Merge pull request #4134 from grandixximo/docs/legacy-html-symlink
docs(build): symlink docs/html -> build/html for the website sync
commit 6e051245d3c8deddf807dbe3197d3e2688961fd6
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 19:05:02 2026 +0800
docs(build): symlink docs/html -> build/html for the website sync
The unified build moved rendered HTML to docs/build/html/, but the
website sync still uploads docs/html/, so the dev-docs link on
linuxcnc.org/documents/ 404s. Re-expose docs/html as a symlink to the
new tree (git-ignored, removed by make clean) so the dereferencing sync
keeps publishing without any buildbot change.
commit 84fe49998d5e0fd2c5b3875ae55174236d2887e4
Author: Hans Unzner <hansunzner@gmail.com>
Date: Thu Jun 4 21:28:24 2026 +0200
halscope: save offset when enabling AC coupling
The offset was reset to zero when AC coupling was enabled.
This adds a data field to restore the previous offset value when disabling AC coupling.
commit 87d8760c5bcd0b75cce02dc538ba7f3bde5a449a
Author: Hans Unzner <hansunzner@gmail.com>
Date: Thu Jun 4 21:27:28 2026 +0200
halscope: fix remember setting of AC coupling
When opening the offset dialog with enabled AC coupling, the AC checkbox is unselected.
You need to select and unselect it in order to disable AC coupling.
commit c3c06c6de67eebec154679c99f94b85f5acae52e
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 13:23:14 2026 +0200
Fix error messages are shown twice
Instead of inhibiting old_handler() we always use old_handler() for
console in real time context and inhibit print to console for messages
passed from realtime to milltask.
commit b792ade95610611ccfb901cb8724ca7d9cd635c6
Author: Hans Unzner <hansunzner@gmail.com>
Date: Thu Jun 4 19:08:17 2026 +0200
gmoccapy: remove checkbox from user message dialog
commit b6baa62b96cc8a61a4acae3d82a251f3abedcad9
Author: Hans Unzner <hansunzner@gmail.com>
Date: Thu Jun 4 19:06:56 2026 +0200
gmoccapy: display startup message as notification message
For that the notification class was extended to show a checkbox
commit 9afe868fb29635f0139a04fe19a78d821139a46e
Author: Hans Unzner <hansunzner@gmail.com>
Date: Thu Jun 4 18:51:21 2026 +0200
gmoccapy: little refactoring around notification
notification.py:
- remove some deprecations in
- optimize margins of frame
gmoccapy.py
- replace magic numbers of message type
commit a9ff6a4b4895ccd814b01db8e90862fbc33e6cf5
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 14:23:35 2026 +0800
ui-smoke: show the driver's stderr in the quit path
quit-launch.sh catted ui-smoke.out but not ui-smoke.err, hiding the
driver's failure reason (e.g. the GUI-crashed message) on a quit-path
failure. Cat it like launch.sh already does.
commit 93ad82040d521e3532b7a8d89e72d04d16faea09
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 13:43:15 2026 +0800
ui-smoke: capture a native backtrace on GUI crash
PYTHONFAULTHANDLER stops at the Python frame; a Qt/dbus/GL segfault
needs the C stack. Arm a core dump in the launchers and, if the GUI
leaves a core, gdb its backtrace into the log. Failure-path only, so
green runs pay nothing.
commit 5098eeb4ffc3be6a83e198b179835ed14aeb19b2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 13:18:35 2026 +0800
ui-smoke: fail fast and explain when the GUI process dies
The driver polled NML for up to 60s after a GUI crash, then blamed
whatever stage timed out (e.g. homing); a dead task keeps serving its
last stat buffer. Watch the launcher PID and fail in ~1s pointing at
the crash. Enable PYTHONFAULTHANDLER for a Python traceback on fatal
signals.
commit 939cdd5064d1358249afd0a1d55f36a063c49b51
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat May 30 14:41:11 2026 +0800
tests: add ui-smoke quit-path coverage (SIGTERM)
Adds a quit-path smoke test per GUI that boots the GUI, waits for the
NML task to come up, sends SIGTERM to the GUI process alone, and asserts
the GUI exits on its own within a short grace. This guards the
clean-shutdown handlers: a GUI that absorbs SIGTERM and has to be
SIGKILLed fails the test.
The new _lib/quit-launch.sh shares the headless environment (software
GL + audio silencing) with launch.sh by sourcing a new
_lib/launch-env.sh rather than copying it, so the two launchers cannot
drift apart. Results go through _lib/checkresult-quit.sh (pass on
UI_SMOKE_QUIT_OK). The GUI process is identified by matching a python
argv[0], so the linuxcnc launcher and xvfb-run wrappers that also carry
the GUI name on their command line are not mistaken for it. Per-GUI
dirs: touchy-quit, gmoccapy-quit, qtdragon-quit.
The qtdragon quit test needs the same CI workarounds the qtdragon smoke
test already carries (writable config mirror with a patched LOG_FILE,
the offscreen Qt platform, and the QtWebEngine import shim). Those move
out of qtdragon/test.sh into _lib/qtdragon-prepare.sh, sourced by both
qtdragon test.sh files, so the quit test reuses them instead of leaving
qtvcp to crash on startup.
Requires the SIGTERM handlers in #4076 (gmoccapy), #4077 (touchy) and
#4078 (qtvcp); without them the GUIs ignore SIGTERM and these tests
fail by design.
(cherry picked from commit aff5991dc3189b48a747c7c7e8962d4d16c5cbe3)
commit 98a028804cc90d06064587d8d4cb8822e5c3ee22
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 24 20:55:35 2026 +0800
test: block QtWebEngine import in qtdragon ui-smoke via meta_path shim
QtWebEngine browser-process init segfaults inside the qtvcp process on
Ubuntu 24.04 CI even with --no-sandbox --single-process --disable-gpu.
The smoke test never touches the WebWidget, so block the
qtpy.QtWebEngineWidgets import via a sitecustomize meta_path finder;
WebWidget already has a fallback that swaps in a plain QWidget when
that import fails. No Chromium spawn, no segfault.
The previous chromium-flags attempt was retracted: 'Sandboxing disabled
by user.' confirmed Chromium got the flags but still crashed during
init, so we are not going to win that race.
commit 218b74e851ab6cc9f41d11c52663357ced4a0b93
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 24 20:04:14 2026 +0800
test: disable QtWebEngine sandbox+GPU for qtdragon ui-smoke
qtdragon embeds QWebEngineView. On rip-and-test (gcc) CI it racy-crashed
during Chromium browser-process spawn under offscreen + xvfb, no GPU,
no user namespaces. rip-and-test-clang got past it by luck.
Force --no-sandbox --single-process --no-zygote --disable-gpu so the
renderer runs in-process with software rendering.
commit ed2c5effd4c6b41be9ce79d68b937a73bfeb3793
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 24 18:45:02 2026 +0800
test: force QT_QPA_PLATFORM=offscreen for qtdragon
xvfb + xcb + xcb_egl was not enough for Ubuntu 24.04 rip-and-test:
qtvcp still segfaults during widget construction even with opencv
and qtwebengine paths quiet, and the same code passes on Debian
package-arch. Offscreen renders entirely in memory and exercises a
different Qt plugin entirely, dodging the xcb-stack instability.
scripts/linuxcnc itself forces QT_QPA_PLATFORM=xcb unless
LINUXCNC_OPENGL_PLATFORM is set to a non-glx value, so pin both.
Only qtdragon needs this; axis (Tk), touchy and gmoccapy (GTK) are
unaffected. Trade-off: no Phase 3 screenshot from qtdragon under
this config; Phase 3 would need an opt-out for offscreen tests.
commit cc1476b65f3bf738ea6bff5333e99de68359f30e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 24 18:18:57 2026 +0800
test: drop python3-opencv dep and set QT_XCB_GL_INTEGRATION=xcb_egl
Ubuntu 24.04 rip-and-test runs hit a qtvcp segfault after the log-
permission fix let qtvcp get further than Phase 1 had. Debian
package-arch passes the same code. Two known asymmetries match:
- python3-opencv on Ubuntu pulls Qt5 GUI bits whose cv2/qt/plugins
directory overrides the system PyQt5 platform plugin path under
xvfb (opencv-python issue #572, Qt Forum 119109). qtvcp's
camview_widget tolerates ImportError on cv2 and just logs a
warning, so dropping the dep restores the harmless fallback path
Phase 1 was already exercising.
- xcb_glx is the historical fragile integration under xvfb
(Launchpad #1761708, QTBUG-67537); xcb_egl is what software-GL
stacks expect anyway. Set as defense in depth.
Local 4/4 still green with both changes.
commit 20fbc52ae38e18a680bf28a64bf75104561ece52
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 24 17:44:06 2026 +0800
test: qtdragon ui-smoke runs against writable config mirror
CI run hit a PermissionError in qtvcp's logger when it tried to open
configs/sim/qtdragon/qtdragon_xyz/qtdragon.log for write: the GitHub
Actions workspace is mounted read-only for the docker build user, and
qtvcp resolves LOG_FILE = qtdragon.log into the config dir. hal_bridge
then exits, linuxcnc tears down, and the driver retries ESTOP_RESET
until the budget is exhausted.
qtdragon test.sh now mirrors the qtdragon_xyz config dir to a mktemp
directory, seds LOG_FILE to ~/qtdragon.log, and passes the absolute
INI path to run-gui.sh. run-gui.sh treats any path starting with /
as absolute; everything else still resolves under configs/sim. Trap
cleans the tmp dir on exit so the working tree stays clean.
Does not touch the shipped qtdragon config to avoid changing default
behaviour for real users. The same fix would work for any other
config that turns out to write into its own dir on CI.
commit 54f3fc2ca3819e5f0ab094998da003612c561a9c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 24 16:56:53 2026 +0800
test: extend ui-smoke with g-code execution and endpoint check
Each per-GUI test now also drives estop reset, machine on, home all,
mode auto, program_open + auto(RUN) on a tiny shared smoke.ngc, waits
for sustained INTERP_IDLE, and asserts stat.position delta against
--expect-delta-mm 1,1,0 converted via stat.linear_units so the same
arg works on inch (axis, touchy) and mm (gmoccapy, qtdragon) sims.
State/mode commands use ensure_state/ensure_mode helpers with a
retry-and-stability pattern: gmoccapy and qtdragon re-issue their own
mode commands during startup and can revert task_mode AUTO -> MANUAL
right after we set it. The helpers wait for the desired state, then
re-check after STATE_STABILITY_S; on revert they retry up to
STATE_RETRY_BUDGET times. Intermediate timeouts use a quiet variant
so spurious UI_SMOKE_FAIL lines do not pollute the log during retries
(checkresult.sh greps for ^UI_SMOKE_FAIL on any line).
smoke.ngc is G21 G91 G0 X1 Y1 G90 M2 - relative move in mm, sim-
agnostic. The driver snapshots stat.position[:3] after homing and
checks (final - start) against the converted delta, sidestepping each
sim's HOME offset.
Adds python3-zmq and python3-opencv to debian/control.top.in under
!nocheck: qtdragon's hal_bridge and the camview widget segfault on
startup without them, which is invisible to the connect-only Phase 1
smoke but breaks the run-program path before the program can start.
5 consecutive local runs all green at 2m43s wall each.
commit 888cb941fbf23ee32fc8e15ca180997d99a39117
Merge: af353fd3 dcfc4fb2
Author: BsAtHome <bertho@vagrearg.org>
Date: Thu Jun 4 13:50:41 2026 +0200
Merge pull request #4125 from grandixximo/fix/gmoccapy-sigterm-startup
gmoccapy: exit on SIGTERM received during startup
commit af353fd3497229bb4287f0012a4a6652674839f8
Merge: 91e27c6a 8838b924
Author: andypugh <andy@bodgesoc.org>
Date: Thu Jun 4 12:39:20 2026 +0100
Merge pull request #4124 from grandixximo/docs/complete-toc-master-includes
docs: add four orphan pages to the master books
commit dcfc4fb2c325fe115df8130f06ef79a1cac44ed2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 17:06:55 2026 +0800
gmoccapy: exit on SIGTERM received during startup
A SIGTERM during construction, before Gtk.main() runs, reaches the
excepthook as a KeyboardInterrupt. With no main loop, Gtk.main_quit()
asserts and the interrupt is swallowed at the GTK C boundary, so
gmoccapy runs on until SIGKILL. Force the exit when no loop is active.
commit 8838b9243f6953cad8f2352b750dbaf0bad8955a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 16:08:01 2026 +0800
docs: add four orphan pages to the master books
hardware-interface, mesa_modbus, gladevcp-panels and writing-tests are
linked from the landing page but missing from every Master_*.adoc, so they
appear in neither the PDFs nor the documentation navigation. Include each
in its book so both deliveries cover the same pages.
Also make mesa_modbus a po4a master (it had no translated copy, so the
translated books failed to find the include), and switch hardware-interface's
Markdown ``` fences to native ---- listing delimiters: po4a drops the ```
fences during translation, leaving an unterminated block that swallowed the
rest of the translated book and timed out the PDF build.
commit 91e27c6ad213f0d7b22b44c8e7e3763f6b0e3d81
Merge: f729a611 071756ac
Author: BsAtHome <bertho@vagrearg.org>
Date: Thu Jun 4 09:58:24 2026 +0200
Merge pull request #4115 from grandixximo/fix/gmoccapy-sigterm-robust
gmoccapy: exit on SIGTERM/SIGINT regardless of main-loop state
commit 0543c7a94a125f31ce15c631fe9c5256c4b1a36e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 16:05:51 2026 +0800
hm2_eth: add nftables firewall backend
commit 06df292e6bc0b4c5285feebda0b6c47b965dd44f
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 13:12:53 2026 +0800
docs(build): index.incl depends on English man list, not full 9-lang
With every language rendering the full manpage set, MAN_HTML_TARGETS
grew to ~4000 paths; echoing it into objects/var-MAN_HTML_TARGETS made a
single bash argument over Linux's 128 KiB MAX_ARG_STRLEN, so CI htmldocs
failed with 'Argument list too long' (passed locally on shorter paths).
index.incl is built only from MAN_HTML_TARGETS_EN, so depend on that var
instead: ~9x smaller, well under the limit, and it no longer rebuilds
when a translation changes.
commit a2b3fb4499ebff0375ce2812a4b40fc630bbea12
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 11:47:08 2026 +0800
docs(build): render the full manpage set in every language
Translated landing pages now list and link the same manpages English
does, rather than only the ~205 that have a po4a translation. Each
language renders all 455 manpages: translated where a po4a leg provides
it (AsciiDoc_def adoc or man_def troff), English fallback otherwise. The
per-page completeness is for the topbar banner (separate branch) to show.
- MAN_HTML_TARGETS_<lang> is the full English stem set, not just the
AsciiDoc_def stems.
- MAN_ENONLY_TROFF_RULE copies the English troff for stems with no po4a
entry (man3 API reference, a few man1/man9) so they have a per-language
prerequisite; install ships English man only, so no install impact.
- MAN_HTML_RULE gains committed-src and en-generated adoc fallbacks so
man_def-only and generated manpages (matrix_kb.9, linuxcnc.1) resolve
their English adoc per language instead of erroring.
- Per-language index.html appends the English manpage index; with full
parity every relative man/ href resolves under <lang>/man/.
Clean -j8 htmldocs: 386s -> 465s (+79s) for the extra per-language
renders.
commit f729a6114804e751cf8fd8115573843b810b84f4
Merge: 3cd702c6 0fc21dad
Author: c-morley <c-morley@users.noreply.github.com>
Date: Wed Jun 3 20:29:25 2026 -0700
Merge pull request #4120 from grandixximo/fix/sys-notify-daemon-message
qtvcp: clarify notification-daemon-absent message
commit 9e240de73f512a924ca1026132abbd0b9361e79e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Jun 2 11:40:31 2026 +0800
docs(build): relocate generated manpages under docs/build/man/, build translated
Move the generated troff manpage tree out of the source tree into
docs/build/man/. Layout follows the /usr/share/man hierarchy: English at
docs/build/man/manN (the C/default locale) and translations at
docs/build/man/<lang>/manN. This differs on purpose from the
build/html/<lang> and build/adoc/<lang> convention, because man(1) resolves
a MANPATH entry by locale and LANG=C only checks <path>/manN; the English
special-casing is documented in the Submakefile header. docs/man/ is
removed; nothing generated lives in the source tree anymore.
- docs/src/Submakefile: add DOC_MAN; repoint manpage generation, MAN_SRCS,
MAN_HTML_RULE, gen_complist prereq, MAN_DEPS and clean targets.
- Build translated manpages: po4a emits the [type: man_def] comp manpages
straight to build/man/<lang>/, and TRANSLATED_TROFF_RULE renders the
.adoc-sourced manpages from build/adoc/<lang>/man into build/man/<lang>/;
per-language HTML reuses MAN_HTML_RULE.
- comp/driver/user_comp manpages (src/hal/.../Submakefile) and linuxcnc.1
now emit to docs/build/man/manN.
- po4a.cfg: point the [type: man_def] entries at build/man/ for both master
and per-language output (structural paths only; no translatable strings).
- install-man + swish index (src/Makefile), Doxygen MAN_OUTPUT, halcompile
run-in-place fallback, gen_complist paths, and the run-in-place MANPATH
(rip-environment) all follow.
- docs/.gitignore: drop the obsolete man/ ignores; build/ already covers them.
- delete the unreferenced legacy groff_www assets rather than carry them into
the new tree (Bertho confirmed unused): an-old-fixed.tmac, man/images/, and
both stylesheet.9 copies (docs/man/ and src/hal/components/). These were the
old groff -Thtml pipeline (.HEAD CSS injection, wavedrom waveform images),
obsolete since component manpages render through asciidoctor.
- tutorial.adoc: update the `man -M` example path.
commit 0fc21dad583b46ded0d2f59c5e4729c794a106d2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 08:43:19 2026 +0800
qtvcp: clarify notification-daemon-absent message
Andy noted the bare 'no notification daemon' is opaque. State the
consequence so the warning stands on its own.
commit 566e655f07e761114c25b7943829c97628542b0e
Author: david mueller <mueller_david@hotmail.com>
Date: Wed Jun 3 15:30:22 2026 +0200
fix(interp): reset G52/G92 offsets on prog_stop when DISABLE_G92_PERSISTENCE=1
This fixes #4096
- Adds canonical command to actually reset applied G92/G52 offset on M2,M30 with [RS274NGC] 'DISABLE_G92_PERSISTENCE = 1'
- Updates INI documentation on DISABLE_G92_PERSISTENCE to reflect new behavior and agree with 'GCODE' documentation
- Modify the 'g92-offset-persistence' test to account for the added 'SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)'
- Change type to 'bool' rather than 'int'
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 4de2e5aa8ca1adb18aba2ebc9ef3797344896a78
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 11:48:13 2026 +0200
Fix error messages are not shown
The last two reverts fix the issue. This commit describes why there is
no good workaround against showing errors twice.
commit a39cb499ac418419245e4db4797586cf6d2103ad
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 12:36:14 2026 +0200
Reapply some changes in hm2_modbus.c
commit e0d88b89f91c3c536090482a4e6f8df70220ac94
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 11:42:48 2026 +0200
Revert "Fix printing hm2_modbus messages at startup."
This reverts commit 65e2269723875ae369d094c654abb871c0236cb1.
commit 25ac3dab2d72eb1b685293faf2045c4faeaf95d1
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 11:41:50 2026 +0200
Revert "motion: avoid duplicate terminal outputs for RTAPI_MSG_ERROR messages"
This reverts commit 47324a78687b6edf667129e5b261883ba6e8927e.
commit 4e76908373cc37b287908a43cdc6727f7f3d1362
Author: Hans Unzner <hansunzner@gmail.com>
Date: Wed Jun 3 12:27:01 2026 +0200
docs: proper output when building man pages
commit 071756ac218bbb26e8c4215541bc96b72a77c086
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 14:15:37 2026 +0800
gmoccapy: handle SIGTERM/SIGINT regardless of main-loop state
The KeyboardInterrupt-via-excepthook path only quits while Gtk.main()
is iterating; a signal during startup or a nested dialog hits
'gtk_main_quit: assertion main_loops != NULL' and gmoccapy runs on
until SIGKILL. Install an explicit handler that quits the loop if one
runs, else exits the process.
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 fa249b49c9ca3a075e14f573bc1d51f98cddaaf6
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 11:05:44 2026 +0800
hm2_eth: don't abort board load when SIOCSARP is denied
commit 57c09f226afb330f0483acecbe4c38612763074a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 3 07:58:27 2026 +0800
docs(build): filter checklink's Perl noise in checkref
w3c-linkchecker prints "Use of uninitialized value ... checklink line N"
to stderr on some inputs; it is tool noise, not link results, and floods
the build/CI log. Drop those lines; checklink stays first in the pipe so
PIPESTATUS[0] is unchanged.
commit 48bbfa03288ef79f214b23a3eb5c3566e92482a8
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Jun 2 20:20:20 2026 +0800
docs(build): copy click-to-enlarge images, not just displayed ones
The HTML image-copy step scanned only src="..." attributes, so images
referenced solely as a link target (image:thumb[link="images/full.png"],
rendered as <a href="...full.png">) were never copied and 404'd when the
reader clicked to enlarge. gui/gmoccapy and gui/gstat had nine such
images. Also scan href="...", filtered to image extensions so page and
anchor links are left out.
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