導入・開発環境

Ourin 依存関係ドキュメント

開発版の資料です。仕様・設計の記述には実装予定や過去の記述を含みます。現在の対応範囲は対応状況・既知の問題と合わせて確認してください。配布中のアプリへの収録状況はリリースノートをご確認ください。 対応状況 · 既知の問題

最終更新: 2026年7月13日 バージョン: 1.2.0


概要

Ourinプロジェクトは、依存関係を最小限に抑えた設計を採用しています。このドキュメントでは、すべての依存関係、その用途、セキュリティに関する考慮事項について説明します。


メインアプリケーション (Swift/SwiftUI)

外部依存関係

なし - Ourinのメインアプリケーションは外部依存関係を持ちません。

システムフレームワーク

Ourinは以下のApple公式フレームワークのみを使用しています:

フレームワーク バージョン 用途
Foundation macOS SDK 基本的なデータ型、コレクション、ファイルシステムアクセス
AppKit macOS SDK macOSネイティブUI(ウィンドウ管理、メニューなど)
SwiftUI macOS SDK モダンな宣言的UI
OSLog macOS SDK システムログ・デバッグ出力
UserNotifications macOS SDK 通知機能
CoreImage macOS SDK 画像処理・フィルター
Combine macOS SDK リアクティブプログラミング・非同期処理
Darwin macOS SDK POSIXシステムコール(セマフォ、共有メモリなど)
Network macOS SDK ネットワーク通信(SSTP TCPサーバー)
UniformTypeIdentifiers macOS SDK ファイルタイプ識別
CoreGraphics macOS SDK 2D描画
ImageIO macOS SDK 画像入出力

セキュリティステータス: ✅ すべてのフレームワークはAppleにより継続的にメンテナンスされています。


DevTools Migrator (オプション / Optional)

Ghidra

  • バージョン: 11.x 以上推奨(開発環境では 12.0.4 で検証)
  • ライセンス: Apache License 2.0
  • 著作権者: National Security Agency (NSA)
  • 用途: SSP 互換 Windows DLL/EXE の逆コンパイル・解析(Migrator 機能)
  • リポジトリ: https://github.com/NationalSecurityAgency/ghidra
  • 公式サイト: https://ghidra-sre.org/

重要: Ghidra は Ourin に同梱されません。ユーザーが別途インストールした analyzeHeadless を外部プロセスとして呼び出します。通常起動時は Ghidra / Java に依存しません。

DecompileAll.java(Ourin/DevTools/Migrator/Resources/)は Ghidra のスクリプト API を使用し、 実行時に GhidraScriptSource.swift から一時ファイルとして実体化されます。

セキュリティステータス: ⚠️ Migrator は未信頼バイナリを扱いますが、解析は Ourin 本体 プロセス外の Ghidra サブプロセスで行われます(参考: 計画「注意点」)。

アプリ内の About → 「ライセンスを表示…」から Ghidra ライセンス文を参照できます。


YAYA Core (C++実装)

外部依存関係

1. nlohmann/json

  • バージョン: 3.11.0以上(yaya_core/CMakeLists.txt は 3.11.0 を指定)
  • ライセンス: MIT License
  • 用途: JSON形式でのプロセス間通信(IPC)
  • リポジトリ: https://github.com/nlohmann/json
  • インストール方法: bash brew install nlohmann-json

セキュリティステータス: ✅ 最新バージョン(3.12.0、2025年4月リリース)に既知の重大な脆弱性はありません。

既知の過去の脆弱性: - バージョン2.0.10以前: ヒープベースのバッファオーバーフロー脆弱性(CBOR解析時) - 対策: バージョン3.12.0を使用することで回避済み

バンドル済みサードパーティコード

以下のコードは yaya_core/third_party/yaya/ に含まれています(yaya-shiori-500からの移植):

1. MD5実装 (md5.c/md5.h)

  • 用途: YAYAのFILEDIGESTおよびSTRDIGEST関数(MD5モード)
  • ライセンス: BSD-3-Clause(YAYA projectより)
  • セキュリティ警告: ⚠️ MD5は暗号学的に破られています(2004年以降)
  • 重要: この実装はセキュリティ目的では使用していません
  • YAYA言語仕様との互換性のためのみ提供
  • 認証・署名検証・パスワードハッシュなどには使用禁止

2. SHA-1実装 (sha1.c/sha1.h)

  • 用途: YAYAのFILEDIGESTおよびSTRDIGEST関数(SHA-1モード)
  • ライセンス: BSD-3-Clause(YAYA projectより)
  • セキュリティ警告: ⚠️ SHA-1は非推奨です(2017年以降)
  • 重要: この実装はセキュリティ目的では使用していません
  • YAYA言語仕様との互換性のためのみ提供
  • 認証・署名検証などには使用禁止

3. CRC32実装 (crc32.c/crc32.h)

  • 用途: YAYAのFILEDIGESTおよびSTRDIGEST関数(CRC32モード)
  • ライセンス: BSD-3-Clause(YAYA projectより)
  • 用途制限: チェックサムのみ(暗号学的ハッシュではありません)

4. POSIX Utilities (posix_utils.cpp/posix_utils.h)

  • 用途: POSIX APIラッパー(ファイル操作、エンコーディング変換など)
  • ライセンス: BSD-3-Clause(YAYA projectより)

SATORI Core (C++実装)

ライブラリ バージョン 用途 ライセンス
satoriya-shiori Mc172-3 / a5746694... 里々辞書評価器 BSD-2-Clause
nlohmann/json 3.11.0以上 SwiftとのJSON Lines IPC MIT
libiconv macOS system CP932/UTF-8変換 システムライブラリ
CMake 3.20以上 Universal 2ビルド BSD-3-Clause

上流ソースはsatori_core/third_party/satoriya-shiori/へ固定して同梱し、ライセンス本文を保持します。ローカルpatchはsatori_core/PATCHES.md、tag/commit/treeはsatori_core/UPSTREAM.mdを正本とします。生成済みhelperはアプリへ署名して同梱され、実行時に外部パッケージを必要としません。


ビルドツール依存関係

必須ツール

ツール 最小バージョン 用途
Xcode 16.4+ Swiftコンパイル・アプリビルド
CMake 3.20+ YAYA Coreビルドシステム
make GNU Make CMakeからの呼び出し
Clang 14+ (Xcode付属) C++17コンパイル

インストール方法

## Xcode Command Line Tools
xcode-select --install

## CMake(Homebrew経由)
brew install cmake

## nlohmann-json
brew install nlohmann-json

最小システム要件

現在の設定

  • 最小macOSバージョン: 11.0 (Big Sur)
  • 推奨macOSバージョン: 13.0 (Ventura) 以上

セキュリティに関する注意

⚠️ 重要: macOS 11.0 (Big Sur)は2023年9月にサポート終了しており、セキュリティアップデートを受信していません。

推奨事項: 今後のリリースでは最小バージョンをmacOS 13.0 (Ventura)に引き上げることを検討してください。


CI/CD依存関係

GitHub Actionsワークフロー (.github/workflows/macOS.yml)で使用されているツール:

ツール バージョン 用途
actions/checkout v4 リポジトリチェックアウト
maxim-lobanov/setup-xcode v1 Xcode選択
actions/cache v4 SwiftPMキャッシュ
xcbeautify latest ビルドログの整形

セキュリティベストプラクティス

✅ 実施済み

  1. 最小依存関係: 外部依存関係は1つのみ(nlohmann/json)
  2. 公式フレームワーク: Appleの公式フレームワークのみ使用
  3. 定期監査: 依存関係の定期的なレビュー

⚠️ 検討事項

  1. バージョン固定: CMakeLists.txtでnlohmann/jsonのバージョンを固定 cmake find_package(nlohmann_json 3.12.0 REQUIRED)

  2. 最小macOSバージョンの更新: - 現在: macOS 11.0 (サポート終了) - 推奨: macOS 13.0+ (セキュリティサポート継続中)

  3. ハッシュ関数の文書化: - MD5/SHA-1はYAYA互換性のみ - 新規コードでは使用禁止を明示


依存関係の更新方法

nlohmann/jsonの更新

## Homebrewで最新版に更新
brew upgrade nlohmann-json

## バージョン確認
brew info nlohmann-json

## YAYA Coreを再ビルド
cd yaya_core
rm -rf build
./build.sh

Xcodeの更新

## 最新のXcodeをApp Storeからインストール後
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

トラブルシューティング

nlohmann/jsonが見つからない

## パッケージが正しくインストールされているか確認
brew list nlohmann-json

## CMakeのパッケージ検索パスを確認
cmake --find-package -DNAME=nlohmann_json -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST

## 再インストール
brew uninstall nlohmann-json
brew install nlohmann-json

ビルドエラー: "nlohmann/json.hpp not found"

原因: Homebrewのインストールパスが認識されていない

解決策:

## Intel Mac
export CMAKE_PREFIX_PATH=/usr/local

## Apple Silicon Mac
export CMAKE_PREFIX_PATH=/opt/homebrew

## 環境変数を設定してから再ビルド
cd yaya_core
rm -rf build
./build.sh

参考リンク

公式ドキュメント

セキュリティ情報


変更履歴

日付 バージョン 変更内容
2025-12-11 1.0.0 初版作成 - 依存関係の完全な文書化
2026-06-26 1.1.0 DevTools Migrator / Ghidra(Apache 2.0)セクション追加
2026-07-13 1.2.0 固定版SATORI Core、Universal 2 helper、BSD-2-Clause情報を追加

お問い合わせ

依存関係やセキュリティに関する質問は以下までお問い合わせください:

📧 [email protected] 🌐 https://github.com/eightman999/Ourin

出典と編集について

Ourin / Furin Lab・contributors。文書はCC BY-SA 4.0(第三者の個別表記を除く)。Web版は見出し・リンクの整備とローカルパスの一般化を行っています。更新基準日: 2026-10-30。

元資料: docs/DEPENDENCIES_ja-jp.md
ソース SHA-256: 8608e170a3f4c5b59c307ddef00a35557ba9dabf2bc19402a14e210d75659718

ライセンス · 出典一覧 · 資料一覧に戻る