# 修正版PDFiumの配置とビルド 現在の候補は `v2` です。ICC変換指定、パターンの初期状態、未着色タイルの線色を修正しています。[検証記録](../tests/results/pdfium-intent-context/README.md)に、元ソース・パッチ・バイナリーと試験結果の対応を保存しています。 ## この作業環境での起動 配置済みの `.deps/pdfium-context` を選択した `build-context` を使用します。 ```sh ./build-context/docview "/path/to/book.pdf" ``` 新しいprefixを作る場合は、まだ存在しないパスを指定します。既存prefixを上書きすることはできません。 ```sh python3 tools/stage_pdfium_candidate.py --candidate v2 --verify-only python3 tools/stage_pdfium_candidate.py --candidate v2 --output "$PWD/pdfium-context-prefix" cmake -S . -B build-context-new -G Ninja -DCMAKE_BUILD_TYPE=Release \ -DDOCVIEW_PDFIUM_ROOT="$PWD/pdfium-context-prefix" cmake --build build-context-new -j 6 ``` この配置ツールは、検証済みソース・ツール・結果が保存された本作業環境を入力にします。ネットワーク取得やPDFiumの再ビルドは行いません。CMakeには新しいビルドディレクトリーを使い、別版のライブラリーが残るキャッシュを避けます。 ## 固定値と照合 | 項目 | 値 | |---|---| | upstream revision | `a5a7089234f121990b336b3841008009dca143bf` | | 候補library SHA-256 | `cb049fe434f4c911b5eb047c0aca572d4dd9f5e405dde329b76c05a6aa771403` | | 固定ビルド記録 | `tests/results/pdfium-intent-context/record.json` | | 記録SHA-256 | `80af72b06d5c9a6a3ab8b9311373e6a23e8df28668ce575e1124350e69aa160b` | | 配置検証の固定値 | `cmake/pdfium-candidate-v2.lock.json` | 配置時は固定記録、パッチ、変更ソース60件、ツールアーカイブ、実際のGN引数、公開ヘッダー24件、告知17件を照合します。ヘッダーはproviderパッチを逆適用して元Git inventoryとの一致も確認します。告知は元ソースとの対応記録に結び付けます。 `include/`、`lib/`、告知、`VERSION`、`args.gn`、`provenance/`、`BUILDINFO.json`を配置します。入力のリンクや特殊ファイルを拒否し、検証したバイト列から一時prefixを作成して、既存出力を置換しないrenameで公開します。 CMakeは候補libraryとヘッダーの選択先を確認し、BUILDINFO・原記録・パッチ・告知を固定lockに照合します。配置先へコピーする前に再検証します。配置後とUbuntu deb検証でも同じ対応を確認します。配置済みの告知・由来記録は `share/doc/docview/pdfium/` に含まれます。 ## 回帰試験 LinuxのCTestには配置ツールと配布対応の試験を含めています。個別にも実行できます。 ```sh python3 -m unittest discover -s tests -p test_stage_pdfium_candidate.py -v python3 -m unittest discover -s tests -p test_pdfium_candidate_integration.py -v ``` 合成入力の改変、ヘッダーと原本の同時改変、既存出力・リンク・特殊ファイル、書込み途中の失敗、公開時の競合、配置前の改変、自己整合だけを装ったdebを検査します。実debの境界試験には `dpkg-deb` が必要です。 第1候補は `--candidate v1` で履歴再現用に保持しています。パターン状態の問題があり、現在のCMake配置先としては受理しません。CLIの既定値は以前の再現手順を保つv1なので、現在の候補には `--candidate v2` を指定してください。 この成果物はLinux x64の検証用です。Windows、物理表示・基準機、人による正解画像承認、公開配布の最終判断は別の未完了条件です。