From 8ff22065dd3720501b8c49391474beb54e7e39b4 Mon Sep 17 00:00:00 2001 From: cnc Date: Wed, 3 Jun 2026 11:29:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=80=83=E6=89=80=E6=9C=89=E5=88=86?= =?UTF-8?q?=E7=BB=84=EF=BC=9A=E8=A1=A5=E7=94=9F=E6=88=90=E7=BB=84=E4=BB=B6?= =?UTF-8?q?manpage=E6=BA=90=E7=BA=A6=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:按 align-linuxcnc 约束补齐 kinematics manifest 的 halcompile generated manpage metadata,并让 M428/M429/M430 INI TOOL_TABLE 的不可解析 LinuxCNC 源现状成为显式基线。 验证:check-linuxcnc-inputs --require-kinematics-complete、check-linuxcnc-switchkins-remap-table、test-native、test-linuxcnc-source-link 均通过。 --- check-linuxcnc-inputs.sh | 59 ++++++++++++++++++++++++++++ linuxcnc-kinematics-source-files.txt | 6 +++ 2 files changed, 65 insertions(+) diff --git a/check-linuxcnc-inputs.sh b/check-linuxcnc-inputs.sh index c941423..8ef2f33 100755 --- a/check-linuxcnc-inputs.sh +++ b/check-linuxcnc-inputs.sh @@ -461,6 +461,34 @@ if [[ -n "$manifest" && "$require_complete" == "--require-kinematics-complete" ] exit 1 fi + generated_component_manpage_sources=() + for source in "${manifest_generated_sources[@]}"; do + case "$source" in + src/objects/hal/components/*.c) + component_name=$(basename "$source" .c) + manpage_source="src/objects/man/man9/$component_name.9.adoc" + if [[ -f "$linuxcnc_root/$manpage_source" ]]; then + generated_component_manpage_sources+=("$manpage_source") + fi + ;; + esac + done + mapfile -t generated_component_manpage_sources < <( + printf '%s\n' "${generated_component_manpage_sources[@]}" | sed '/^$/d' | sort -u + ) + + missing_generated_component_manpage_sources=() + for source in "${generated_component_manpage_sources[@]}"; do + if ! printf '%s\n' "${manifest_metadata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_generated_component_manpage_sources+=("$source") + fi + done + if ((${#missing_generated_component_manpage_sources[@]} > 0)); then + echo "manifest does not cover all LinuxCNC generated component manpage sources adjacent to generated kinematics sources: $manifest" >&2 + printf 'missing generated component manpage source: %s\n' "${missing_generated_component_manpage_sources[@]}" >&2 + exit 1 + fi + missing_m428_m430_ini_remap_sources=() unresolved_m428_m430_ini_remaps=() for source in "${manifest_m428_m430_ini_sources[@]}"; do @@ -1134,6 +1162,37 @@ if [[ -n "$manifest" && "$require_complete" == "--require-kinematics-complete" ] printf '%s\n' "${unresolved_m428_m430_config_tooldata_sources[@]}" | sed '/^$/d' | sort -u ) + # Source basis: these LinuxCNC M428/M429/M430 INI files name TOOL_TABLE + # entries that are absent from the current LinuxCNC source tree. Keep the + # unresolved set explicit so new missing tool tables do not pass silently. + expected_unresolved_m428_m430_config_tooldata_sources=( + "configs/sim/axis/vismach/hexapod-sim/hexapod.ini TOOL_TABLE=hexapod.tbl" + "configs/sim/axis/vismach/scara/scara.ini TOOL_TABLE=scara.tbl" + "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini TOOL_TABLE=scara.tbl" + ) + unexpected_unresolved_m428_m430_config_tooldata_sources=() + for source in "${unresolved_m428_m430_config_tooldata_sources[@]}"; do + if ! printf '%s\n' "${expected_unresolved_m428_m430_config_tooldata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + unexpected_unresolved_m428_m430_config_tooldata_sources+=("$source") + fi + done + missing_expected_unresolved_m428_m430_config_tooldata_sources=() + for source in "${expected_unresolved_m428_m430_config_tooldata_sources[@]}"; do + if ! printf '%s\n' "${unresolved_m428_m430_config_tooldata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_expected_unresolved_m428_m430_config_tooldata_sources+=("$source") + fi + done + if ((${#unexpected_unresolved_m428_m430_config_tooldata_sources[@]} > 0)); then + echo "LinuxCNC M428/M429/M430 INI TOOL_TABLE files have new unresolved sources: $manifest" >&2 + printf 'unexpected unresolved M428/M429/M430 tool table source: %s\n' "${unexpected_unresolved_m428_m430_config_tooldata_sources[@]}" >&2 + exit 1 + fi + if ((${#missing_expected_unresolved_m428_m430_config_tooldata_sources[@]} > 0)); then + echo "LinuxCNC M428/M429/M430 INI TOOL_TABLE unresolved source set changed: $manifest" >&2 + printf 'missing expected unresolved M428/M429/M430 tool table source: %s\n' "${missing_expected_unresolved_m428_m430_config_tooldata_sources[@]}" >&2 + exit 1 + fi + missing_m428_m430_config_tooldata_sources=() for source in "${m428_m430_config_tooldata_sources[@]}"; do if ! printf '%s\n' "${manifest_tooldata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then diff --git a/linuxcnc-kinematics-source-files.txt b/linuxcnc-kinematics-source-files.txt index 2eeff48..a40144c 100644 --- a/linuxcnc-kinematics-source-files.txt +++ b/linuxcnc-kinematics-source-files.txt @@ -277,9 +277,15 @@ metadata:docs/man/man9/tripodkins.9:LinuxCNC tripodkins generated manpage source metadata:src/objects/hal/components/gantry.mak:halcompile-generated gantry component make metadata metadata:src/objects/man/man9/gantry.9.adoc:halcompile-generated gantry component manpage source metadata:src/objects/hal/components/matrixkins.mak:halcompile-generated matrixkins make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/matrixkins.9.adoc:halcompile-generated matrixkins manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/millturn.mak:halcompile-generated millturn make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/millturn.9.adoc:halcompile-generated millturn manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/userkins.mak:halcompile-generated userkins make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/userkins.9.adoc:halcompile-generated userkins manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/xyzab_tdr_kins.mak:halcompile-generated XYZAB table dual rotary make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/xyzab_tdr_kins.9.adoc:halcompile-generated XYZAB table dual rotary manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/xyzacb_trsrn.mak:halcompile-generated XYZACB TRSRN make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/xyzacb_trsrn.9.adoc:halcompile-generated XYZACB TRSRN manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/xyzbca_trsrn.mak:halcompile-generated XYZBCA TRSRN make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/xyzbca_trsrn.9.adoc:halcompile-generated XYZBCA TRSRN manpage source adjacent to generated kinematics source asset:src/emc/kinematics/blend.fig:LinuxCNC kinematics reference asset tracked for full directory coverage