# Arch recipe とローカル依存版の対応 最終開発版の[依存由来台帳](DEPENDENCY-PROVENANCE.md)に記録した 4 件について、 キャッシュ `.BUILDINFO` の `pkgbuild_sha256sum` と**完全一致する**公式 Arch packaging Git の固定 commit を確認した。latest recipe で代用していない。 全 SHA-256、URL、Git blob ID、取得ファイル一覧は [correspondence.json](../tests/results/source-correspondence/arch/correspondence.json)に保存した。 | パッケージ版 | 一致した公式 Arch commit | recipe SHA-256 の先頭 | |---|---|---| | qt6-base 6.11.2-3 | [dc5728701868](https://gitlab.archlinux.org/archlinux/packaging/packages/qt6-base/-/commit/dc5728701868792b88f1a3e7f9b56aa3362c5474) | `217bd5ea50a3c721` | | qt6-declarative 6.11.2-2 | [9eac2c716283](https://gitlab.archlinux.org/archlinux/packaging/packages/qt6-declarative/-/commit/9eac2c716283905721fdcbc5bb18494f0a486325) | `f955fe1f3f93ca32` | | qt6-webengine 6.11.2-1 | [f701f0aa989dc](https://gitlab.archlinux.org/archlinux/packaging/packages/qt6-webengine/-/commit/f701f0aa989dcbc653805d696118f48d6a70dd0d) | `e4395367f03fd6ca` | | tomlplusplus 3.4.0-2 | [69b0e478ef49](https://gitlab.archlinux.org/archlinux/packaging/packages/tomlplusplus/-/commit/69b0e478ef49b2a5636346d8c9b64c1effc39cfa) | `08383384ca64c9cd` | 同 commit の packaging ファイル 30 件、25,299 bytes を取得した。PKGBUILD、展開済み 参照一覧 `.SRCINFO`、local patch、packaging 自体の LICENSE/REUSE 等を含む。 全件の SHA-256 と Git blob ID を照合した。recipe のコードは実行していない。 元の本体・ワーカー・PDFium lock・最終 tar は変更していない。 ## 元ソースと適用差分 - **Qt base**: `qtbase` の `v6.11.2` を参照。Qt 公式 tag の現在の解決先は `ef55f427f2c8b410d34f8a7681020a3000cf6866`。Arch の `qt6-base-cflags.patch` と `qt6-base-nostrip.patch` は取得し、recipe 内 SHA-256 と一致。 さらに upstream commit `e80e3f0cebae9c3a45a1b7ce81d6454c699d89c6` を `cherry-pick -n` する。対応する公式 patch 本文も取得した。 - **Qt declarative**: `qtdeclarative` の `v6.11.2` を参照し、現在の解決先は `4e3399c26ec57246c08de019cfcbda8d23604cfa`。 `2efb7c60ef45952cc8e04b9c9a07965d14c30446` の cherry-pick patch 本文を取得した。 - **Qt WebEngine**: `qtwebengine` の `v6.11.2` と別取得する `qtwebengine-chromium` を参照。 Qt tag の現在の解決先は `a33fa2a897e5ee58e385b3f88dc247d99fca56db`、その `src/3rdparty` gitlink は `5170777d28bee1ce92cc693a0dbf2ad01492e5cf`。 この exact recipe の `_chromium` は空なので、prepare は `git submodule update` の gitlink を使い、別 commit の checkout は行わない。packaging にある `bump-chromium-commit` は保守用 helper で、この recipe からは実行されない。 Chromium source 行の checksum は `SKIP`。これを検証済み source hash と扱っていない。 - **toml++**: GitHub の公式 `v3.4.0.tar.gz` を `tomlplusplus-3.4.0.tar.gz` として参照。 recipe の SHA-512 / BLAKE2b を記録した。当時は元 archive 未取得だった。後続の[取得・検査](../tests/results/source-archives/README.md)で両checksumと現在の51ヘッダー・LICENSEの一致を確認した。tag の Git commit 解決はこの追加作業には含まない。 上の Qt tag 解決は今回の公式 metadata の観測であり、当時の builder が受け取った source bytes を再現した証明とは異なる。Git source に宣言された SHA-256 も台帳へ保持したが、 全 checkout を取得してその checksum を計算したとは扱わない。 ## Chromium の版表記 固定 gitlink の `chromium/chrome/VERSION` は `140.0.7339.225`。 Qt の `src/core/configure/BUILD.root.gn.in` は `build/util/version.py` へ `//chrome/VERSION` を渡し、その結果を `CHROMIUM_VERSION` macro にする。 `QtGnGen.cmake` が指定する GN root は submodule の `chromium` ディレクトリーである。 `web_engine_context.cpp` の `qWebEngineChromiumVersion()` はこの macro を文字列化する。 したがって、この source から得られる版は[実ライブラリで別途観測した `140.0.7339.225`](../tests/results/source-correspondence/qt-credits/resource-extraction.json) と整合する。 [取得した固定 source とハッシュ](../tests/results/source-correspondence/arch/upstream-metadata/version-sources.json) 一方、Qt repository 上位の説明ファイル `CHROMIUM_VERSION` は base `140.0.7339.264` / security patches `151.0.7922.71` を記載する。 この説明ファイルは上記 API の生成元ではない。 `qWebEngineChromiumSecurityPatchVersion()` の source は `151.0.7922.71` の固定文字列を返す。 base API、security patch API、説明 metadata の値を混ぜて単一の runtime 版としない。 個々の security patch の完全性を、この版表記だけから保証するものでもない。 ## 再検証と未完了範囲 [collect.py](../tests/results/source-correspondence/arch/collect.py) は既定で保存済み証拠を オフライン検証する。`--fetch --output NEW_DIRECTORY` は固定 commit の小ファイルと metadata だけを再取得する。1 ファイル 512 KiB、保存対象合計 4 MiB、packaging 64 ファイルを上限とし、 対象は公式 Arch/Qt の HTTPS に限定する。source archive、clone、build は実施しない。 HTML metadata には生成時刻が入り得るため、再取得時は semantic commit を照合し、 recipe・patch・固定 source 本文は byte hash を照合する。 ```sh python3 tests/results/source-correspondence/arch/collect.py python3 tests/results/source-correspondence/arch/test_collect.py python3 tests/results/source-correspondence/arch/collect.py --fetch \ --output tests/results/source-correspondence/arch/new-fetch ``` 正式な G-DISTRIBUTION は引き続き未達。この作業で、4 recipe の版・commit・付属 patch・source 参照の対応は進んだが、全対応ソース、build toolchain、生成物の再ビルド再現、署名の真正性、 全第三者告知や適用条件の判定、対象 OS のクリーン配布検証まで完了したものではない。 DocView の公開ライセンスや製品版の同梱方針も選択していない。 ## 公式リリースソース取得の追加結果 [Qt 6.11.2一式の公式archive](../tests/results/source-archives/README.md)を公開SHA-256と照合し、全390,976通常ファイルを検査した。上記WebEngineの固定source 8件が一致し、base/declarativeの4差分は専用コピーへ適用できた。CFLAGS patchは元recipeのGNU patch既定許容範囲でfuzz 1を必要とし、upstream 2差分はfuzz 0で確認した。適用後のmkspec 2件は現在のArchファイルと一致した。実ビルド、全コンパイル入力・全告知の照合、G-DISTRIBUTIONの完了は示さない。