From 7b335c09ae5fb20966ab05ddd51008e55a2b31b0 Mon Sep 17 00:00:00 2001 From: jimmy_hero Date: Tue, 8 Jul 2025 03:05:58 +0000 Subject: [PATCH 1/3] =?UTF-8?q?add=20oEEP/oEEP-0024=20openEuler=20non-free?= =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E7=A4=BE=E5=8C=BA=E5=8F=91=E5=B8=83=E6=9C=BA?= =?UTF-8?q?=E5=88=B6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jimmy_hero --- ...21\345\270\203\346\234\272\345\210\266.md" | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 "oEEP/oEEP-0024 openEuler non-free\350\275\257\344\273\266\347\244\276\345\214\272\345\217\221\345\270\203\346\234\272\345\210\266.md" diff --git "a/oEEP/oEEP-0024 openEuler non-free\350\275\257\344\273\266\347\244\276\345\214\272\345\217\221\345\270\203\346\234\272\345\210\266.md" "b/oEEP/oEEP-0024 openEuler non-free\350\275\257\344\273\266\347\244\276\345\214\272\345\217\221\345\270\203\346\234\272\345\210\266.md" new file mode 100644 index 0000000..926ed65 --- /dev/null +++ "b/oEEP/oEEP-0024 openEuler non-free\350\275\257\344\273\266\347\244\276\345\214\272\345\217\221\345\270\203\346\234\272\345\210\266.md" @@ -0,0 +1,135 @@ +--- +标题: non-free 软件社区发布机制 +类别: 流程设计 +摘要: non-free软件引入流程 +作者: 吴峰光/范佳臣/杜开田 +状态: 初始化 +编号: oEEP-0023 +创建日期: 2025-05-07 +修订日期: 2025-06-10 +--- + +## 背景与动机 + +从Devstation 及AI 应用环境看,发现较多的开源软件栈构建、安装 依赖闭源的软件(例如:各类GPU驱动、厂家SDK、Broadcom wifi驱动固件,VirtualBox虚拟化组件、免费字体、字典等),当前社区缺失流程来支撑依赖二进制开箱即用的能力构建,希望能够构建一套面向二进制软件的引入、发布流程,支持开发者及AI场景的开箱即用体验,简化开发者的环境安装、部署配置操作步骤,改进体验。 + + + + +## 业界情况 +- OS 厂家分发情况 + - ubuntu:通过Main、Restricted、Universe、Multiverse仓库进行拆分。其中,Multiverse仓库专门用于存放nonfree软件。 + - fedora:通过rpmfusion三方社区提供额外的软件包,非fedora的官方团队分发 +- 第三方厂家协议情况 + - nvidia 用户协议举例 + +| 产品举例 | 软件分类 | 用户协议 | +| ---------------- | ------------------------------------------- |-------------------------| +| nvidia | 驱动 | [驱动用户协议](http://https://www.nvidia.cn/drivers/nvidia-license/) | +| nvidia | SDK:cuda | [SDK 用户协议](http://https://docs.nvidia.com/cuda/eula/index.html) | + + + +## 当前主要问题 + + 相对而开源软件,除了关心开源license之外,non-free(包括:二进制)软件一般由商业公司在其官网发布,同时通过用户使用协议,对二进制程序的使用提供引用方式、分发方式、免责申明等条款进行说明,需要在使用的过程中关注。 + +- 用户使用协议 + - 引用方式:一般要求使用在其产品配套的场景,且不允许对二进制进行修改。 + - 分发方式:是否允许其它开源社区、机构、组织等集成及分发。 + - 免责申明:对于不满足用户使用,无法获取对应的技术支持,且有可能引入法务风险。 + +- 来源 + - 来自于第三方网站,通常采用http协议/wget下载 + +- 格式问题 + - 提供的方式包括单不限于 rpm/deb包、tar包、二进制bin,格式不归一 + +- 涉及范围 + - 驱动类:如Nvidia GPU + - SDK 类: 如CUDA + - 模型类:如ds/llama + - 固件类/微码类:如 microctl 等firmware + - 二进制插件/库类:如 ebpf/算子/codec + - 二进制工具类:如 rar + - 免费字体、字典数据 + - Virtualbox 等 + + +## 方案描述 + +### 三方二进制软件引入原则 + +为实现对二进制软件的引入的遵从性管理,需要对而二进制的可信过程进行存证。 + +- 二进制需要有明确的官方来源。src-openeuler不作为任何软件的维护社区,因此引入到src-openeuler并进入openEuler版本的软件必须有清晰定义的第三方官网 +- 二进制应该有明确的引入理由,说明应用场景及使用约束 +- 原则上,该二进制应该在openEuler上可以被正确构建 +- 原则上,对二进制程序需要有第三方厂家提供 用户使用协议,包括且不限于,引用方式、分发方式、免责申明,对于引用第三方的non-free软件,服务条款参考第三方服务协议 +- 原则上,不违反国家、国际上法规的non-free软件,引入的二进制必要安全检测 +- 原则上,不得对官网提供的二进制程序进行修改 +- 原则上,对于需要有license 等 付费软件不能引入,如果涉及临时license 、保密条款、专利风险等例外,经由Technical Committee 讨论后决定 + +### 二进制使用责任边界 +-社区 + - 提供二进制托管项目仓库,构建基础设施,分发渠道 + - 提供交流论坛,提交issue信息 + + +-三方厂家 + - 官网提供服务条款及政策,包括且不限于免责条款。 + - 提供经过三方厂家公开的技术支撑联系方式。 + - 提供厂家二进制下载、用户集成及分发协议,包括但不限于,登录下载授权,分发协议等,并对分发时是否需要账号申请方式及下载授权方式进行说明。 + + +### 二进制引入前检查 + +| 检查点 | 说明 | +| ---------------- | ------------------------------------------------------------ | +| 来源可靠 | 1、二进制软件都应该从第三方官网获取或官网指定的托管地址获取 | +| 规范化软件名称 | 1、 软件名称必须和官网/社区保持一致,不可随意命名 | +| 三方活跃检查 | 1、1年内不更新版本的二进制不纳入? | +| 官网必填 | 1、软件官方网址填写规范,使用软件供应商提供的网址
2、提供适用于wget 的二进制下载url ? | +| 软件包信息提供 | 1、必须提供官方提供的软件包的下载地址,以达到可溯源
2、需要记录校验值
3、软件包需要携带第三方提供的完整协议信息 | +| 用户使用协议检查 | 1、是否有用户使用协议,无使用协议的二进制原则上不引入
2、允许分发
3、携带免责申明
4、使用场景约束 | + + +###二进制构建实施计划 + +- 仓库目录要求 + - 二进制程序 + - 三方官网下载地址 + - rpm/epkg spec 用于打包二进制 + - 厂家免责条款、分发条款,服务条款等信息 + - readme +- 门禁管理 + - 区分二进制 新增条款检测能力。 + - 安全病毒扫描 + - 一致性检测 +- 质量管理 + - 与三方厂家完成兼容性验证或者提供同等效果的验证报告,由 QA&兼容性 SIG联合验收 ? + + +### 软件仓发布管理 + +- 可放入non-free、non-free-firmware仓的软件,大体上可以分为以下类型: + +| 目标仓 | 类型 | 描述 | +| ----------------- | --------- | ---------------------------------------------------------------- | +| non-free | 免费闭源软件 | 闭源,公开可获取二进制软件包,允许再分发,且不收取任何费用的软件(一般为驱动、固件、ebpf) | +| non-free | 源码公开软件 | 源代码公开,使用非OSI认可的开源许可协议,例如使用SSPL许可证的MongoDB,额外要求将程序作为服务提供时,必须提供源代码 | +| non-free | 依赖限制软件 | 该软件本身开源,但依赖其它non-free仓软件 | +| non-free | 字体、AI模型数据 | 公开可获取,允许免费使用和再分发 | +| non-free-firmware | 安装期硬件固件 | OS安装时需要用到,放入iso,以支持广泛硬件 | + +### 镜像管理 +- 容器镜像,支持发布容器镜像,不允许对厂家提供用户使用协议,服务条款等原始信息进行裁剪。 +- 虚机镜像,支持发布虚机镜像,不允许对厂家提供用户使用协议,服务条款等原始信息进行裁剪。 +- ISO镜像,支持发布ISO镜像,不允许对厂家提供用户使用协议,服务条款等原始信息进行裁剪。 + +### 三方二进制软件退出流程 + +- 当满足以下几个个条件时,三方项目可以被申请立即执行,对应repo将从项目中直接删除。 + - 软件的用户授权分发、免责条款协议变化 与社区的引入原则冲突,或者其他法律法规影响了目前正在使用的版本,导致openEuler因为法务风险,不能继续集成该软件 + - 被国内外权威结构定性为有严重危害的相关项目。 + - 第三方厂家发布或同等公告停止维护等项目。 -- Gitee From 1bf29fb1af01893413b4b485e59e09c85a5bb0b1 Mon Sep 17 00:00:00 2001 From: jimmy_hero Date: Tue, 8 Jul 2025 03:06:41 +0000 Subject: [PATCH 2/3] =?UTF-8?q?update=20oEEP/oEEP-0000=20oEEP=20=20?= =?UTF-8?q?=E7=B4=A2=E5=BC=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jimmy_hero --- "oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" "b/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" index 6ea7cbf..a27ebef 100644 --- "a/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" +++ "b/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" @@ -36,6 +36,7 @@ | 0021 | P,I | [openEuler软件包版本监控配置](oEEP-0021%20openEuler软件包版本监控配置.md) | 翟文杰(zwjsec at huawei.com) | 2025-03-10 | | 0022 | D,P | [openEuler多版本包管理规范](oEEP-0022%20openEuler多版本包管理规范.md) | 刘恺(kai.liu at windriver.com) | 2025-04-01 | | 0023 | D,I | [大型套组软件管理规范](oEEP-0023%20大型套组软件管理规范.md) | Eustace Wang | 2025-06-04 | +| 0023 | D,P | [openEuler non-free软件社区发布机制](oEEP-0023%20openEuler%20non-free软件社区发布机制.md) | 吴峰光(wu_fengguang at openeuler.sh),范佳臣@disnight (fanjiachen3 at huawei.com), 杜开田(jimmy_hero at openeuler.sh)| 2025-06-11 | ## oEEP 类型分类: - D (Document, 信息整理): 信息梳理形成的文档。此类 oEPP 包含社区索引,指南,规范或其他和 openEuler 相关的信息。 -- Gitee From 215beb4ff2a344e4c9daf20a5046a6bbfd5d1ed1 Mon Sep 17 00:00:00 2001 From: jimmy_hero Date: Tue, 8 Jul 2025 03:19:34 +0000 Subject: [PATCH 3/3] =?UTF-8?q?update=20oEEP/oEEP-0000=20oEEP=20=20?= =?UTF-8?q?=E7=B4=A2=E5=BC=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jimmy_hero --- "oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" "b/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" index a27ebef..728d10a 100644 --- "a/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" +++ "b/oEEP/oEEP-0000 oEEP \347\264\242\345\274\225.md" @@ -36,7 +36,7 @@ | 0021 | P,I | [openEuler软件包版本监控配置](oEEP-0021%20openEuler软件包版本监控配置.md) | 翟文杰(zwjsec at huawei.com) | 2025-03-10 | | 0022 | D,P | [openEuler多版本包管理规范](oEEP-0022%20openEuler多版本包管理规范.md) | 刘恺(kai.liu at windriver.com) | 2025-04-01 | | 0023 | D,I | [大型套组软件管理规范](oEEP-0023%20大型套组软件管理规范.md) | Eustace Wang | 2025-06-04 | -| 0023 | D,P | [openEuler non-free软件社区发布机制](oEEP-0023%20openEuler%20non-free软件社区发布机制.md) | 吴峰光(wu_fengguang at openeuler.sh),范佳臣@disnight (fanjiachen3 at huawei.com), 杜开田(jimmy_hero at openeuler.sh)| 2025-06-11 | +| 0024 | D,P | [openEuler non-free软件社区发布机制](oEEP-0023%20openEuler%20non-free软件社区发布机制.md) | 吴峰光(wu_fengguang at openeuler.sh),范佳臣@disnight (fanjiachen3 at huawei.com), 杜开田(jimmy_hero at openeuler.sh)| 2025-06-11 | ## oEEP 类型分类: - D (Document, 信息整理): 信息梳理形成的文档。此类 oEPP 包含社区索引,指南,规范或其他和 openEuler 相关的信息。 -- Gitee