Skip to content

ADR-010 开源策略与软件物料清单

状态:待决(发布阻断)。日期:2026-09-23。范围:VMax 自有代码、第三方密码库及发布物。决策人:项目负责人、法务/开源合规负责人、安全负责人(待指派)。

背景

VMax 计划开源并发布 iOS App 和可自托管服务。原始 v1.1 说明书要求许可证评估、SBOM 和依赖审查;其推荐的 libsignal 许可可能是 AGPLv3,不能在未完成义务评估时直接集成。仓库当前没有 LICENSE,公开可见不等于被授予开源使用、修改和再分发权。

待决问题与候选

  1. 自有客户端、服务端、协议规范和文档使用统一许可,还是按组件分别授权。宽松许可有利于自托管与生态复用,但需确认密码引擎依赖和贡献授权是否兼容;强 copyleft 能约束衍生分发,却可能影响 App Store 分发、商用部署与第三方依赖组合。暂不写入 LICENSE 或在 README 宣称已授权。
  2. 密码引擎优先评估已审计、可维护且许可兼容的实现。若采用 libsignal,需书面确认版本、AGPLv3 义务、iOS 分发影响、网络服务边界和全部源代码提供义务;如无法满足,则比较可审计替代实现,而不是自行发明协议。
  3. 官方 Push Gateway 与完全主权部署的源码、凭据、品牌和服务条款分开处理;开源代码不意味着提供官方 APNs 凭据或生产服务。

暂行约束

在最终许可决定前,不接受含未知授权代码/图片/字体的提交,不对外发布二进制或声称项目具备特定开源许可证。每个依赖记录名称、版本、来源、许可证、用途、维护状态、漏洞与替代方案;CI 生成覆盖 Swift、Go、容器及前端资源的 SPDX 或 CycloneDX SBOM,并对版本变更做许可证与漏洞复核。发布证据保留构建版本与 SBOM 哈希,不把秘密放入 SBOM。第三方归属和声明随发布物提供。

决策门槛

法务完成许可兼容矩阵与发布模式审查;安全负责人确认密码实现和更新策略;项目负责人批准组件许可及贡献者授权方式;随后提交 LICENSE、NOTICE、第三方清单,并把本 ADR 状态改为“已接受”。若许可选择改变协议实现或代码组织,应联动 ADR-001 和发布门槛。当前所有候选均未定案。

系统初步设计 · 待决事项不代表批准 · 安全方案尚未完成独立审计