コンテンツにスキップ

リリースとメタデータ

Wine runtime artifact は、runtime ディレクトリ、tarball、checksum、sidecar JSON を一緒に生成します。

artifacts/wine-$BUILD_NAME/
wine-$BUILD_NAME-build/
wine-$BUILD_NAME-install/
wine-$BUILD_NAME/
wine-$BUILD_NAME.tar.gz
wine-$BUILD_NAME.tar.gz.sha256
wine-$BUILD_NAME.json

現在の基準名は次のとおりです。

BUILD_NAME配布名
winehq-11.11wine-winehq-11.11
winehq-11wine-winehq-11
crossover-26.1.0wine-crossover-26.1.0

DXMT runtime は別 artifact として管理します。

artifacts/dxmt-v0.80-builtin.tar.gz
artifacts/dxmt-v0.80-builtin.tar.gz.sha256

Wine package 段階では、ランチャーが読む metadata を runtime 内部と artifact の横に書き出します。

<WINE_ROOT>/share/bdhi/launcher-options.json
artifacts/wine-$BUILD_NAME/wine-$BUILD_NAME.json

metadata ファイルの選択順序は次のとおりです。

BDHI_LAUNCHER_OPTIONS_FILE
metadata/bdhi-launcher-options.$BUILD_NAME.json
metadata/bdhi-launcher-options.$PATCH_SET.json
metadata/bdhi-launcher-options.json

ランチャーは、展開済み runtime 内部の manifest を優先して使います。 ダウンロード前の一覧表示には artifact 横の sidecar JSON を使えます。 新しい runtime flavor を追加するときは、意図的に既存 patch-set manifest を共有する場合を除き、専用 metadata ファイルを用意するのが基本です。

metadata の capabilities はランチャー内部の契約です。 通常のユーザー設定として表示するものではありません。

process telemetry capability は、Wine server process table を prefix-scoped FIFO へ送るための契約です。

{
"protocol": 1,
"transport": "fifo",
"activationEnvironment": "WINE_BDIH_PROCESS_TELEMETRY",
"pipeEnvironment": "WINE_BDIH_PROCESS_PIPE"
}

Wine は process lifecycle fact だけを報告します。 そのプロセスがインストーラー、ランチャー、ゲーム、helper のどれかを分類する責任は、バブトンイリホヨ ランチャー側にあります。

WineHQ 系列の metadata は HoYoPlay proxy capability も宣言します。 宣言された helper が artifact 内にない場合は、不完全な runtime として明確に失敗させるのがよいです。

process telemetry は Steam や HoYoPlay だけに結び付いた機能ではありません。 prefix 全体の Wine process lifecycle を報告する共通機能です。

有効化には次の環境変数を使います。

WINE_BDIH_PROCESS_TELEMETRY=1
WINE_BDIH_PROCESS_PIPE=/absolute/native/path/to/process-events.fifo

FIFO は 0600 権限で作成します。 command line には token やユーザーパスが含まれる可能性があるため、raw payload をそのままログに残さない方がよいです。 reader がない、pipe が満杯、write に失敗した場合、Wine はイベントを捨てるべきです。 telemetry が原因で Wine process や wineserver が遅延または失敗してはいけません。

Wine runtime archive には third-party binary が含まれます。 リポジトリ自体のライセンスと runtime 配布上の義務は別に扱う必要があります。

package 段階では runtime 内に次の license bundle を生成します。

<WINE_ROOT>/share/licenses/
README.md
BUILD-PROVENANCE.txt
source/
homebrew/
dwproton/
dxmt/

dwproton/ は WineHQ Proton extras を含める場合に使います。 dxmt/ は DXMT を明示的に bundle する場合だけ使います。 GStreamer、FFmpeg、x264、x265 などの multimedia component は Homebrew 更新で依存関係とライセンス構成が変わることがあるため、リリース前に再確認してください。

リリース前に次の項目を確認します。

  • clean.sh 後に同じ patch set を再適用できるか確認します。
  • 一時的な debug counter、tracing、local-only patch が release source に残っていないか確認します。
  • tarball、.sha256、sidecar JSON が同じビルド結果を指しているか確認します。
  • runtime 内部の share/bdhi/launcher-options.json と sidecar JSON が一致しているか確認します。
  • share/licenses/ が実際に含まれる binary と一致しているか確認します。
  • Steam、Eternal Return、HoYoPlay backend など、その runtime が宣言した workload を再確認します。