发布与元数据
artifact 名称
Section titled “artifact 名称”Wine runtime artifact 会同时生成运行时目录、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.11 | wine-winehq-11.11 |
winehq-11 | wine-winehq-11 |
crossover-26.1.0 | wine-crossover-26.1.0 |
DXMT runtime 作为独立 artifact 管理。
artifacts/dxmt-v0.80-builtin.tar.gzartifacts/dxmt-v0.80-builtin.tar.gz.sha256启动器元数据
Section titled “启动器元数据”Wine package 阶段会把启动器读取的 metadata 同时写入 runtime 内部和 artifact 旁边。
<WINE_ROOT>/share/bdhi/launcher-options.jsonartifacts/wine-$BUILD_NAME/wine-$BUILD_NAME.jsonmetadata 文件选择顺序如下。
BDHI_LAUNCHER_OPTIONS_FILEmetadata/bdhi-launcher-options.$BUILD_NAME.jsonmetadata/bdhi-launcher-options.$PATCH_SET.jsonmetadata/bdhi-launcher-options.json启动器应优先使用解包后 runtime 内部的 manifest。 下载前展示列表信息时,可以使用 artifact 旁边的 sidecar JSON。 添加新的 runtime flavor 时,默认应新增独立 metadata 文件,除非它有意共享现有 patch-set manifest。
capabilities 基准
Section titled “capabilities 基准”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,是 Bob-Ddong-Iri-Hoyo 启动器的职责。
WineHQ 系列 metadata 还会声明 HoYoPlay proxy capability。 如果 artifact 中缺少已声明的 helper,应将该 runtime 视为不完整并清晰失败。
process telemetry 策略
Section titled “process telemetry 策略”process telemetry 不是 Steam 或 HoYoPlay 专用功能。 它报告整个 prefix 的 Wine process lifecycle。
启用时使用以下环境变量。
WINE_BDIH_PROCESS_TELEMETRY=1WINE_BDIH_PROCESS_PIPE=/absolute/native/path/to/process-events.fifoFIFO 应以 0600 权限创建。
command line 中可能包含 token 或用户路径,因此不建议原样记录 raw payload。
如果没有 reader、pipe 已满或写入失败,Wine 应丢弃事件。
telemetry 绝不能导致 Wine process 或 wineserver 延迟或失败。
许可证与发布
Section titled “许可证与发布”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/ 只在明确 bundle DXMT 时使用。
GStreamer、FFmpeg、x264、x265 等 multimedia component 会随 Homebrew 更新发生依赖和许可证变化,因此发布前需要重新检查。
发布前请确认以下项目:
clean.sh后相同 patch set 可以重新应用。- 临时 debug counter、tracing、本地专用 patch 没有留在 release source 中。
- tarball、
.sha256、sidecar JSON 指向同一个构建结果。 - runtime 内部的
share/bdhi/launcher-options.json与 sidecar JSON 一致。 share/licenses/与实际包含的 binary 一致。- 重新确认该 runtime 声明的 workload,例如 Steam、Eternal Return、HoYoPlay backend。