Skip to content

fix_dylib.sh: 引数必須化(引数なし実行時の $HOME 以下 dylib 書き換えを防止) - #174

Open
k-yoshimi wants to merge 1 commit into
developfrom
fix/168-fix-dylib-guard
Open

fix_dylib.sh: 引数必須化(引数なし実行時の $HOME 以下 dylib 書き換えを防止)#174
k-yoshimi wants to merge 1 commit into
developfrom
fix/168-fix-dylib-guard

Conversation

@k-yoshimi

Copy link
Copy Markdown
Collaborator

概要

Fixes #168

scripts/fix_dylib.sh は引数を省略すると cd $1cd(引数なし)となって $HOME へ移動し、ホームディレクトリ配下の全 .dylib/.so の install name を install_name_tool で書き換えてしまう問題がありました。

  • 引数が 1 個でなければ usage を表示して exit 1
  • cd "$1" の失敗(ディレクトリ不存在)時も exit 1
  • $1 / $DIR をクォート

検証(macOS で実施)

ケース 修正前 修正後
引数なし $HOME 以下を走査・書き換え Usage: ... DIR を表示し exit 1
空ディレクトリ 正常終了 何もせず exit 0
存在しないディレクトリ $PWD 以下を走査(cd 失敗を無視) エラー表示し exit 1

🤖 Generated with Claude Code

Without an argument, "cd $1" fell back to $HOME, so the script
rewrote install names of every .dylib/.so under the home directory.
Now it prints usage and exits, and fails cleanly when the directory
does not exist.

Fixes #168

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@k-yoshimi

Copy link
Copy Markdown
Collaborator Author

AI review cycle (Codex + Antigravity) 結果

Phase 1 (Codex): must_fix 0 / should_fix 0。optional 1 件(空白入りパスの LIBS ループ分割)は、インストーラ全体が空白パス非対応という契約(#178 で set_prefix に明示ガード追加)のため対象外と判断。

Phase 2 (Antigravity): 指摘ゼロ。リポジトリ内の既存呼び出し元(boost の macos postprocess 等)は引数を渡しており互換性ありと確認。docs からの参照なし。

→ 両フェーズ収束。修正コミット不要。

@k-yoshimi
k-yoshimi changed the base branch from master to develop July 7, 2026 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P1] scripts/fix_dylib.sh: 引数なしで実行すると $HOME 以下の全 dylib の install name を書き換える

2 participants