Skip to content

cmake-find-package.sh: 作業ディレクトリを mktemp -d で作成 - #177

Open
k-yoshimi wants to merge 3 commits into
developfrom
fix/171-find-package-tmpdir
Open

cmake-find-package.sh: 作業ディレクトリを mktemp -d で作成#177
k-yoshimi wants to merge 3 commits into
developfrom
fix/171-find-package-tmpdir

Conversation

@k-yoshimi

Copy link
Copy Markdown
Collaborator

概要

Fixes #171

WORK_DIR="${TMPDIR}find-package.$$" には以下の問題がありました。

  • TMPDIR 未設定(Linux で一般的)だと相対パスになり、カレントディレクトリに作業ディレクトリを作成して最後に rm -rf していた
  • TMPDIR 末尾スラッシュ(macOS の慣習)を仮定
  • $$ による予測可能な名前

WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/find-package.XXXXXX") || exit 1 に変更しました。

検証(macOS で実施)

  • TMPDIR あり/なし(env -u TMPDIR)の両方で sh scripts/cmake-find-package.sh ZLIB ZLIB_VERSION_STRING1.2.12 を返し exit 0
  • 実行後、カレントディレクトリと /tmp に残骸ディレクトリが残らないことを確認

🤖 Generated with Claude Code

k-yoshimi and others added 3 commits July 7, 2026 18:05
"${TMPDIR}find-package.$$" created (and rm -rf'ed) a directory in
the current directory when TMPDIR was unset, assumed a trailing
slash, and used a predictable name.

Fixes #171

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CMake 4.x removed compatibility with < 3.5, so the debug helper
always failed to configure. 3.8 matches cmake-find-package.sh.

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。BSD/GNU mktemp 互換性、macOS の末尾スラッシュ付き TMPDIR(// は無害)、呼び出し元 find.sh への影響なしを確認。推奨テスト(TMPDIR あり/なし/スラッシュなし + 実呼び出し元)は全て実施しパス。

Phase 2 (Antigravity): 姉妹スクリプト cmake-find-package-test.sh に同じ TMPDIR パターンが残っている指摘 → 同一修正を適用。その検証中に既存の故障を発見: テンプレートの cmake_minimum_required(VERSION 3.1) が CMake 4.x で拒否され、このデバッグヘルパーは常に失敗していた → 本体と同じ 3.8 に引き上げ、CMake 4.2.1 で find-package-result: 1.2.12 が出ることを確認(コミット 2 件追加)。

Phase 1 再レビュー(エスカレーション): 指摘ゼロ。

→ 両フェーズ収束。

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

[P2] scripts/cmake-find-package.sh: TMPDIR 未設定時にカレントディレクトリへ作業ディレクトリを作成する

2 participants