参考所有分组:补生成组件manpage源约束

结论:按 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 均通过。
This commit is contained in:
cnc
2026-06-03 11:29:47 +08:00
parent 5c2d5cfa05
commit 8ff22065dd
2 changed files with 65 additions and 0 deletions

View File

@@ -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

View File

@@ -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