Skip to content

Commit b6513d0

Browse files
committed
Merge branch '2.9'
2 parents 52b35be + 3804459 commit b6513d0

File tree

17 files changed

+488
-63
lines changed

17 files changed

+488
-63
lines changed

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
2.10.0~pre0
2+

debian/changelog

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,107 @@ linuxcnc (1:2.10.0~pre0) UNRELEASED; urgency=medium
1313

1414
-- Pushkar Kulkarni <[email protected]> Mon, 24 Mar 2025 20:50:08 +0530
1515

16+
linuxcnc (1:2.9.5) UNRELEASED; urgency=medium
17+
18+
* tests: save.1 test removed. It's been skipped for 19 years.
19+
* Merge pull request #3529 from LinuxCNC/andypugh/tests/spindle_limits
20+
* Merge pull request #3553 from Sigma1912/patch-2
21+
* Merge pull request #3552 from Sigma1912/halui_fix_axis_and_mdi_command_pins
22+
* halui: on startup, set the first configured axis as 'is-selected' instead of X
23+
* halui: Don't create 'halui.axis.'- pins for unconfigured axes
24+
* qtvcp versa probe: remember setting of auto skew/zero buttons we reopened
25+
* PyVCP test: result file formatting fixes (#3551)
26+
* Merge pull request #3537 from DauntlessAq/probe_error_decel_no_inhibit_2.9
27+
* stepconf -fix human input names in wrong order
28+
* Tests: Add a test for PyVCP - Specifically Issue #3538
29+
* Merge pull request #3540 from andronick83/patch-1
30+
* Added missing period to description of G95. (PR #3542)
31+
* Deprecate gantry.comp
32+
* Fix #3538 - "halparam" tag not working in PyVCP
33+
* probe_error_decel_no_inhibit rebased for 2.9
34+
* Delete tests/spindle_limits/test.ini
35+
* tests: Add a test for spindle INI speed limits function
36+
* Fix a race; add a test to ensure the 'result' and 'stderr' files are closed before continuing to run 'checkresult'.
37+
* Fix command-line directories acceptance by correct expansion.
38+
* Fix a race between setting the signal handlers and marking hal_ready().
39+
* The quit_flag is volatile because it is changed in a signal and used in threads.
40+
* remove buster from CI
41+
* debian: reduce Lintian Warnings. (hardening-no-relro: panelui, module_helper)
42+
* Fixed word typo in remap.adoc (numberer->numbered).
43+
* docs: Add back German translation link in stable branch index page.
44+
* Merge pull request #3493 from BsAtHome/backport_2.9_fix-hm2_modbus
45+
* Backport hm2_modbus fixes and additions from master.
46+
* Merge pull request #3479 from Sigma1912/patch-1
47+
* Update g-code.adoc
48+
* Gladevcp: Update the .ui and .glade files in the sample configs to Gtk+3.0
49+
* clarify documentation on stat 'gcodes' and (spindle)'speed' attributes
50+
* Merge pull request #3460 from Sigma1912/2.9-Fix-preview-update-not-respecting-active-wcs
51+
* Don't use RS274NGC_STARTUP_CODE when updating the preview
52+
* Merge pull request #3454 from Sigma1912/2.9_Fix_issue_3447
53+
* Gmoccapy: Fix very large numbers for spindle speed and 'Vc' in the gui when using G96
54+
* Gmoccapy: Fix 'spindle.0.speed-out' pins being reset to wrong value when using G96
55+
* Merge pull request #3446 from BsAtHome/backport_2.9_hm2_modbus
56+
* Python 3.7 (Debian 10) has no dictionary merge operator, use alternative syntax.
57+
* Split declaration/assignment with label because it is not accepted by the compiler in Debian 10 and 11.
58+
* Backport new hm2_modbus driver to 2.9 branch.
59+
* Merge pull request #3425 from BsAtHome/backport_2.9_fix-deprecated
60+
* Merge pull request #3388 from smoe/patch-18
61+
* Merge pull request #3445 from BsAtHome/backport_2.9_fix-python-313
62+
* Make 2.9 branch compile with python 3.13
63+
* Merge pull request #3422 from BsAtHome/backport_2.9_fix_re-syntax-warning
64+
* Merge pull request #3429 from smoe/typos_29
65+
* 2.9: typos, punctuation in comments
66+
* Make using PyConfig conditional on python version >= 3.8.
67+
* Merge pull request #3423 from BsAtHome/backport_2.9_fix_debug-O0
68+
* Merge pull request #3424 from BsAtHome/backport_2.9_fix-comment-in-comment
69+
* Merge pull request #3421 from BsAtHome/backport_2.9_fix_link-version-script
70+
* Fix deprecated Py_SetProgramName() and deprecated use of Py_UnbufferedStdioFlag.
71+
* Fix comment in comment
72+
* Remove forced -O0 optimization flag.
73+
* Fix invalid escape sequence warnings from halcompile and hal components.
74+
* Use objdump and awk to extract the rtapi exported symbols
75+
* Merge pull request #3416 from BsAtHome/fix_2.9_ci-update
76+
* Fix missing parity error definition
77+
* Update CI base for 2.9 branch to Ubuntu 24.04.
78+
* Backport fix of modcompile
79+
* Merge pull request #3412 from BsAtHome/backport_2.9_fix_update-pktuart-v3
80+
* Merge pull request #3411 from BsAtHome/backport_fix_make-noise
81+
* Merge pull request #3410 from BsAtHome/backport_2.9_fix-pointer-compare
82+
* Varargs export of function is not available in 2.9.
83+
* Update dependencies with PktUART update. Fix crash bugs and warnings in modbus template.
84+
* Update, fix and reorganize hostmot2 PktUART to support V3.
85+
* Remove make terminal clutter
86+
* Use pointer null compare instead of integer compare.
87+
* Merge pull request #3407 from BsAtHome/backport-fix_hm2-constify
88+
* Merge pull request #3405 from BsAtHome/backport-fix_test-halcompile
89+
* Use const char pointers. Add missing pktuart calls. Prevent hal name overruns.
90+
* Add stdio.h header for readline versions that need it.
91+
* debian: updating debian-uploads' changelogs
92+
* debian: Addressing usrmerge
93+
* debian: Added Andy as uploader
94+
* debian: Updated policy standard to 4.7.2
95+
* orient: Commit 79c0966 had an un-noticed effect on the behaviour of M19 reported in issue #3389
96+
* Merge pull request #3392 from Sigma1912/2.9-ServoToGo_remove-web-link-to-spamsite
97+
* ServoToGo: remove old weblinks that now redirect to a spam site
98+
* halui -fix spindle override using direct value.
99+
* gmoccapy: fix setting to disable "run from line"
100+
* halscope: set button left and right padding to 0 to allow smaller window size
101+
* docs: update halscope channel off function + update images
102+
* Fix missing semicolon
103+
* qtdragon_hd_vert -add a sample config for vertical layout.
104+
* qtvcp -qtdragon_hd_vert: add a vertical layout version
105+
* Merge pull request #3339 from NTULINUX/ntulinux/2.9-fixes
106+
* getting-linuxcnc.adoc: Remove spurious backslash in path to iso.
107+
* .gitignore fixes
108+
* Merge pull request #3330 from hansu/gmoccapy-fix-resizing
109+
* gmoccapy: change text to icons of undo/redo buttons to fit window size
110+
* interp_o_word.cc: Insert almost-certainly-missing "breaks" addresses #3290
111+
* qtvcp -vismach gantry_5axis: fix cleanup of HAL component
112+
* qtvcp -vismach millturn: fix cleanup of HAL component
113+
* qtvcp -vismach_fanuc_200f- fix cleanup of HAL component
114+
115+
-- andypugh <[email protected]> Sat, 06 Sep 2025 21:20:33 +0100
116+
16117
linuxcnc (1:2.9.4-2) unstable; urgency=medium
17118

18119
* Team upload.

docs/src/gcode/g-code.adoc

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ as the 'L number', and so on for any other letter.
8787
|<<gcode:g43.1,G43.1>> |Dynamic Tool Length Offset
8888
|<<gcode:g43.2,G43.2>> |Apply additional Tool Length Offset
8989
|<<gcode:g49,G49>> |Cancel Tool Length Offset
90-
|<<gcode:g52,G52>> |Local Coordinate System Offset
90+
|<<gcode:,>> |Local Coordinate System Offset
9191
|<<gcode:g53,G53>> |Move in Machine Coordinates
9292
|<<gcode:g54-g59.3,G54-G59.3>> |Select Coordinate System (1 - 9)
9393
|<<gcode:g61,G61>> |Exact Path Mode
@@ -800,9 +800,9 @@ Important Concepts:
800800
system.
801801
* When a rotation is in effect jogging an axis will only move that axis
802802
in a positive or negative direction and not along the rotated axis.
803-
* If a 'G52' local offset or 'G92' origin offset was in effect before
803+
* If a '' local offset or 'G92' origin offset was in effect before
804804
'G10 L2', it will continue to be in effect afterwards.
805-
* When programming a coordinate system with R, any 'G52' or 'G92' will
805+
* When programming a coordinate system with R, any '' or 'G92' will
806806
be applied *after* the rotation.
807807
* The coordinate system whose origin is set by a 'G10' command may be
808808
active or inactive at the time the 'G10' is executed.
@@ -852,7 +852,7 @@ G10 L10 P- axes <R- I- J- Q->
852852

853853
G10 L10 changes the tool table entry for tool P so that if the tool
854854
offset is reloaded, with the machine in its current position and with
855-
the current G5x and G52/G92 offsets active, the current coordinates for
855+
the current G5x and /G92 offsets active, the current coordinates for
856856
the given axes will become the given values. The axes that are not
857857
specified in the G10 L10 command will not be changed. This could be
858858
useful with a probe move as described in the <<gcode:g38,G38>> section.
@@ -894,7 +894,7 @@ G10 L11 is just like G10 L10 except that instead of setting the entry
894894
according to the current offsets, it is set so that the current
895895
coordinates would become the given value if the new tool offset
896896
is reloaded and the machine is placed in the G59.3 coordinate
897-
system without any G52/G92 offset active.
897+
system without any /G92 offset active.
898898

899899
This allows the user to set the G59.3 coordinate system according to a
900900
fixed point on the machine, and then use that fixture to measure tools
@@ -1539,8 +1539,10 @@ G52 axes
15391539
----
15401540

15411541
G52 is used in a part program as a temporary "local coordinate system
1542-
offset" within the workpiece coordinate system. More information on G52
1543-
is in the <<sec:g52-and-g92-offsets,Local and Global Offsets>> section.
1542+
offset" within the workpiece coordinate system. For more information about
1543+
`G92` and `G52` and how they interact see the
1544+
<<sec:g52-and-g92-offsets,Local and Global Offsets>>
1545+
section.
15441546

15451547
[[gcode:g53]]
15461548
== G53 Move in Machine Coordinates(((G53 Machine Coordinates)))

src/emc/rs274ngc/gcodemodule.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -915,6 +915,12 @@ static PyObject *parse_file(PyObject * /*self*/, PyObject *args) {
915915
result = pinterp->execute();
916916
}
917917

918+
if(initcode && RESULT_OK) {
919+
result = pinterp->read(initcode);
920+
if(!RESULT_OK) goto out_error;
921+
result = pinterp->execute();
922+
}
923+
918924
while(!interp_error && RESULT_OK) {
919925
error_line_offset = 1;
920926
result = pinterp->read();

src/emc/usr_intf/gremlin/gremlin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ def load(self,filename = None):
327327
canon.parameter_file = temp_parameter
328328

329329
unitcode = "G%d" % (20 + (s.linear_units == 1))
330-
initcode = self.inifile.find("RS274NGC", "RS274NGC_STARTUP_CODE") or ""
330+
initcode = ""
331331
result, seq = self.load_preview(filename, canon, unitcode, initcode)
332332
if result > gcode.MIN_ERROR:
333333
self.report_gcode_error(result, seq, filename)

src/emc/usr_intf/gremlin/qt5_graphics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ def load(self,filename = None):
397397
shutil.copy(parameter, temp_parameter)
398398
canon.parameter_file = temp_parameter
399399
unitcode = "G%d" % (20 + (s.linear_units == 1))
400-
initcode = self.inifile.find("RS274NGC", "RS274NGC_STARTUP_CODE") or ""
400+
initcode = ""
401401
result, seq = self.load_preview(filename, canon, unitcode, initcode)
402402
if result > gcode.MIN_ERROR:
403403
self.report_gcode_error(result, seq, filename)

src/emc/usr_intf/halui.cc

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -691,24 +691,26 @@ int halui_hal_init(void)
691691
retval = hal_pin_bit_newf(HAL_OUT, &(halui_data->joint_is_homed[num_joints]), comp_id, "halui.joint.selected.is-homed");
692692
if (retval < 0) return retval;
693693

694+
bool first_axis = true;
694695
for (axis_num=0; axis_num < EMCMOT_MAX_AXIS ; axis_num++) {
695696
if ( !(axis_mask & (1 << axis_num)) ) { continue; }
696697
char c = "xyzabcuvw"[axis_num];
697-
698698
retval = hal_pin_bit_newf(HAL_OUT, &(halui_data->axis_is_selected[axis_num]), comp_id, "halui.axis.%c.is-selected", c);
699699
if (retval < 0) return retval;
700-
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_commanded[axis_num]), comp_id, "halui.axis.%c.pos-commanded", c);
700+
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_commanded[axis_num]), comp_id, "halui.axis.%c.pos-commanded", c);
701701
if (retval < 0) return retval;
702-
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_feedback[axis_num]), comp_id, "halui.axis.%c.pos-feedback", c);
702+
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_feedback[axis_num]), comp_id, "halui.axis.%c.pos-feedback", c);
703703
if (retval < 0) return retval;
704-
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_relative[axis_num]), comp_id, "halui.axis.%c.pos-relative", c);
704+
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_relative[axis_num]), comp_id, "halui.axis.%c.pos-relative", c);
705705
if (retval < 0) return retval;
706+
if (first_axis) {
707+
// at startup, indicate first item is selected:
708+
*halui_data->joint_is_selected[0] = 1;
709+
*halui_data->axis_is_selected[axis_num] = 1;
710+
}
711+
first_axis = false;
706712
}
707713

708-
// at startup, indicate [0] item is selected:
709-
*halui_data->joint_is_selected[0] = 1;
710-
*halui_data->axis_is_selected[0] = 1;
711-
712714
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->mv_value), comp_id, "halui.max-velocity.value");
713715
if (retval < 0) return retval;
714716
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->fo_value), comp_id, "halui.feed-override.value");
@@ -871,21 +873,22 @@ int halui_hal_init(void)
871873
}
872874

873875
for (axis_num = 0; axis_num < EMCMOT_MAX_AXIS; axis_num++) {
876+
if ( !(axis_mask & (1 << axis_num)) ) { continue; }
874877
char c = "xyzabcuvw"[axis_num];
875-
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->axis_nr_select[axis_num]), comp_id, "halui.axis.%c.select", c);
876-
if (retval < 0) return retval;
877-
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_plus[axis_num]), comp_id, "halui.axis.%c.plus", c);
878-
if (retval < 0) return retval;
879-
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_minus[axis_num]), comp_id, "halui.axis.%c.minus", c);
880-
if (retval < 0) return retval;
881-
retval = hal_pin_float_newf(HAL_IN, &(halui_data->ajog_analog[axis_num]), comp_id, "halui.axis.%c.analog", c);
882-
if (retval < 0) return retval;
883-
retval = hal_pin_float_newf(HAL_IN, &(halui_data->ajog_increment[axis_num]), comp_id, "halui.axis.%c.increment", c);
884-
if (retval < 0) return retval;
885-
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_increment_plus[axis_num]), comp_id, "halui.axis.%c.increment-plus", c);
886-
if (retval < 0) return retval;
887-
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_increment_minus[axis_num]), comp_id, "halui.axis.%c.increment-minus", c);
888-
if (retval < 0) return retval;
878+
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->axis_nr_select[axis_num]), comp_id, "halui.axis.%c.select", c);
879+
if (retval < 0) return retval;
880+
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_plus[axis_num]), comp_id, "halui.axis.%c.plus", c);
881+
if (retval < 0) return retval;
882+
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_minus[axis_num]), comp_id, "halui.axis.%c.minus", c);
883+
if (retval < 0) return retval;
884+
retval = hal_pin_float_newf(HAL_IN, &(halui_data->ajog_analog[axis_num]), comp_id, "halui.axis.%c.analog", c);
885+
if (retval < 0) return retval;
886+
retval = hal_pin_float_newf(HAL_IN, &(halui_data->ajog_increment[axis_num]), comp_id, "halui.axis.%c.increment", c);
887+
if (retval < 0) return retval;
888+
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_increment_plus[axis_num]), comp_id, "halui.axis.%c.increment-plus", c);
889+
if (retval < 0) return retval;
890+
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->ajog_increment_minus[axis_num]), comp_id, "halui.axis.%c.increment-minus", c);
891+
if (retval < 0) return retval;
889892
}
890893

891894
retval = hal_pin_bit_newf(HAL_IN, &(halui_data->joint_home[num_joints]), comp_id, "halui.joint.selected.home");

tests/save.1/README

Lines changed: 0 additions & 2 deletions
This file was deleted.

tests/save.1/expected

Lines changed: 0 additions & 19 deletions
This file was deleted.

tests/save.1/skip

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)