From 854cc682b3575fff8ac2b58f5e8ac66c8737c2b5 Mon Sep 17 00:00:00 2001 From: cnc Date: Tue, 2 Jun 2026 14:06:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E6=8F=90=E7=A4=BA=E8=AF=8D=E7=BB=93?= =?UTF-8?q?=E8=AE=BA=E8=A1=A5=E6=BA=90=E8=B7=AF=E5=BE=84=E4=BE=9D=E6=8D=AE?= =?UTF-8?q?=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list-linuxcnc-kinematics-manifest-sources.sh | 3 +++ list-linuxcnc-manifest-sources.sh | 7 +++++++ list-linuxcnc-source-files.sh | 7 +++++++ test-native.sh | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/list-linuxcnc-kinematics-manifest-sources.sh b/list-linuxcnc-kinematics-manifest-sources.sh index 210edda..7fcd332 100755 --- a/list-linuxcnc-kinematics-manifest-sources.sh +++ b/list-linuxcnc-kinematics-manifest-sources.sh @@ -3,6 +3,9 @@ set -euo pipefail cd "$(dirname "$0")" +# LinuxCNC source basis: linuxcnc-kinematics-source-files.txt tracks +# src/emc/kinematics plus configs/sim INI/HAL/remap/tooldata/assets used by +# LinuxCNC switchkins, M428/M429/M430 remaps, and RTCP coverage. manifest=${1:-linuxcnc-kinematics-source-files.txt} filter_group=${2:-core} output_mode=${3:-relative} diff --git a/list-linuxcnc-manifest-sources.sh b/list-linuxcnc-manifest-sources.sh index 98261f8..2771058 100755 --- a/list-linuxcnc-manifest-sources.sh +++ b/list-linuxcnc-manifest-sources.sh @@ -3,6 +3,9 @@ set -euo pipefail cd "$(dirname "$0")" +# LinuxCNC source basis: manifest listers expose LinuxCNC-root relative source +# entries from RS274, kinematics, remap, config, tooldata, and metadata +# manifests after check-linuxcnc-inputs.sh validates their source coverage. manifest=${1:?manifest required} filter_group=${2:?filter group required} output_mode=${3:?output mode required} @@ -52,6 +55,10 @@ while IFS=: read -r group path note; do echo "unknown manifest group: $group" >&2 exit 1 fi + if [[ "$path" = /* || "$path" == .. || "$path" == ../* || "$path" == */.. || "$path" == */../* ]]; then + echo "manifest source must be LinuxCNC-root relative: $path" >&2 + exit 1 + fi full_path="$linuxcnc_root/$path" if [[ ! -f "$full_path" ]]; then diff --git a/list-linuxcnc-source-files.sh b/list-linuxcnc-source-files.sh index ec94e7e..0d506f3 100755 --- a/list-linuxcnc-source-files.sh +++ b/list-linuxcnc-source-files.sh @@ -3,6 +3,9 @@ set -euo pipefail cd "$(dirname "$0")" +# LinuxCNC source basis: fixed-source probes resolve explicit LinuxCNC-root +# relative paths from src/emc/rs274ngc, src/emc/tooldata, and related source +# directories before compiling or linking source-backed bridge checks. linuxcnc_root=${LINUXCNC_ROOT:-../linuxcnc} missing_source_message="missing LinuxCNC source" preflight_cache_dir=${CNC_SIM_PREFLIGHT_CACHE_DIR:-build/linuxcnc-helper-preflight-cache} @@ -39,6 +42,10 @@ if [[ "$#" -eq 0 ]]; then fi for source in "$@"; do + if [[ "$source" = /* || "$source" == .. || "$source" == ../* || "$source" == */.. || "$source" == */../* ]]; then + echo "LinuxCNC source path must be root-relative: $source" >&2 + exit 1 + fi full_source="$linuxcnc_root/$source" if [[ ! -f "$full_source" ]]; then echo "$missing_source_message: $source" >&2 diff --git a/test-native.sh b/test-native.sh index 25f899f..79bd735 100755 --- a/test-native.sh +++ b/test-native.sh @@ -72,7 +72,12 @@ grep -F 'LinuxCNC source basis: standalone probe modes either compile LinuxCNC' grep -F 'LinuxCNC source basis: link probe modes reuse wasm-safe objects built from' build-linuxcnc-wasm-link-probe.sh >/dev/null grep -F 'grep -F '\''LinuxCNC source basis: src/emc/rs274ngc/rs274ngc_pre.cc provides'\'' "$main_source" >/dev/null' build-linuxcnc-wasm-link-probe.sh >/dev/null grep -F 'core:src/emc/rs274ngc/rs274ngc_pre.cc:Interp implementation covered by rs274ngc_pre link probe' build-linuxcnc-wasm-standalone-probe.sh >/dev/null +grep -F 'LinuxCNC source basis: fixed-source probes resolve explicit LinuxCNC-root' list-linuxcnc-source-files.sh >/dev/null +grep -F 'LinuxCNC source path must be root-relative: $source' list-linuxcnc-source-files.sh >/dev/null +grep -F 'LinuxCNC source basis: manifest listers expose LinuxCNC-root relative source' list-linuxcnc-manifest-sources.sh >/dev/null +grep -F 'manifest source must be LinuxCNC-root relative: $path' list-linuxcnc-manifest-sources.sh >/dev/null grep -F 'LinuxCNC source basis: linuxcnc-rs274-source-files.txt enumerates the native' list-linuxcnc-source-manifest-sources.sh >/dev/null +grep -F 'LinuxCNC source basis: linuxcnc-kinematics-source-files.txt tracks' list-linuxcnc-kinematics-manifest-sources.sh >/dev/null grep -F 'LinuxCNC source basis: native source-link support objects come from the' list-linuxcnc-source-support-objects.sh >/dev/null grep -F 'LinuxCNC source basis: native RS274/source-link builds consume headers from' list-linuxcnc-source-common-cxxflags.sh >/dev/null grep -F 'LinuxCNC source basis: wasm-safe probes compile the manifest-selected' list-linuxcnc-wasm-common-cxxflags.sh >/dev/null