新闻详情

新闻详情

首页 / 资讯中心 / 详情

Madeira 的 GPL-3.0 附加许可机制:Madeira Converter Exception 与 Apple Metal Shader Converter 的合规组合方案

发布时间:2026/9/30 23:41:22来源:尧图网络
Madeira 的 GPL-3.0 附加许可机制:Madeira Converter Exception 与 Apple Metal Shader Converter 的合规组合方案
游戏开发图形学【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址https://gitcode.com/GitHub_Trending/mad/Madeira点击查看免费下载导读Madeira 的目标是在被沙盒限制的 iOS 环境中运行 x86-64 Windows 游戏技术栈为 FEX-Emu Wine DXMT其中 DXIL 着色器需要经 Apple 专有的 Metal Shader Converter 动态库libmetalirconverter.dylib转换为 Metal 库。由于 Madeira 主体代码以 GPL-3.0-or-later 授权与 Apple 专有库静态/动态组合存在许可证兼容问题。本文围绕仓库根目录的 LICENSE-EXCEPTION.md 展开讲解Madeira Converter Exception, version 1这份附加许可GPL-3.0 第 7 节机制的生效流程、适用范围边界、配套的 Wine LGPL 分支方案与分发义务帮助读者理解开源项目如何合规地与专有 Apple 组件共存的完整工程实践。一、背景GPL-3.0 代码为何需要一份附加许可Madeira 的授权路径是 GPL-3.0-or-later见 COPYING 与根目录 LICENSE。项目中存在两类许可来源迥异的组件Madeira 作者自有代码主应用Swift/ObjC 与工具链、原生 Direct3D 12 运行时madeira_d3d12.dll、FEX 与 DXMT fork 中的 Madeira 修改代码均为 GPL-3.0-or-laterApple 专有代码Metal Shader Converter 动态库Apple 协议仅允许以着色器转换为目的分发、Apple 系统框架Metal、Foundation、UIKit 等。GPL-3.0 对组合作品combined work的分发有严格的许可证传染要求而 Apple 组件的专有授权与该要求无法兼容。GPL-3.0 第 7 节Additional Terms允许版权持有人为自己的代码附加额外许可从而有条件地豁免特定组合场景下的传染义务——这正是 Madeira Converter Exception 的法律基础。二、Madeira Converter Exception, version 1许可条款全文解读LICENSE-EXCEPTION.md 中定义的Madeira Converter Exception, version 12026-09-16 起草自采纳日起生效核心条款如下如果你修改本程序或任何覆盖作品通过链接或组合的方式将其与 Apple Metal Shader Converter 动态库libmetalirconverter.dylib任意版本、或与 Apple 的 Metal、Foundation、CoreGraphics、QuartzCore、UIKit、AppKit 及相关系统框架或其修改版本结合本程序的许可方授予你额外许可以传播由此产生的作品。关键限制必须注意对应源代码义务保留对以非源码形式传播的组合作品对应源代码必须包含组合中使用的本程序部分的源码但不需要包含 Apple 库的源码不改变 Apple 库的授权该许可不延伸到 Apple 库本身它们仍受 Apple 自身许可条款约束可移除性根据 GPL-3.0 第 7 节传播副本时你可以自行移除这一附加许可。也就是说这份异常只豁免Madeira 自有代码与 Apple 库组合这一场景并未改变任何一方的底层授权。三、生效机制Adoption Line 与 pre-push 钩子这份文件是一份准备中的法律文书其生效有严格的时间线设计起草日期2026-09-16采纳日期2026-09-24由版权持有人 Will Faust 完成采纳Adopted on: 2026-09-24 / By: Will Faust生效边界文档明确分发自首次推送到公共远程开始而不是从发布 tag 开始因此采纳行必须在任何公共推送之前完成工程保障仓库的.githooks/pre-push钩子在文件仍为草稿状态时会拒绝远程推送需执行git config core.hooksPath .githooks启用该钩子见 LICENSE-EXCEPTION.md。这一点与 docs/LICENSING.md 互相印证GPL-3.0 代码与专有转换器的组合仅在版权持有人授予附加许可时被允许而该许可在第一次公共推送之前2026-09-24即已采纳。forks 与运行时中的每一份该文本副本都遵循此采纳——这意味着附加许可随代码副本传播不因 fork 而失效。四、适用范围Scope and Authority覆盖什么、不覆盖什么附加许可只能由其所覆盖代码的版权持有人附加。因此 LICENSE-EXCEPTION.md 用两节明确定义了边界。4.1 覆盖范围由 Madeira 作者持有版权组件说明本仓库中的 Madeira 应用与工具链所有提交均由 Madeira 作者完成贡献按 CONTRIBUTING.md 接受自采纳日起贡献即包含本许可原生 Direct3D 12 运行时research/madeira-d3d12作者相同其自带 LICENSE 承载相同文本FEX 与 DXMT fork 中 Madeira 作者的修改、FEX/External 下 rpmalloc fork 中 Will Faust 的提交各 fork 的LICENSE-MADEIRA.md完整复现本许可在最后一项中上游 FEX 与 DXMT 代码为 MIT上游 rpmalloc 为 0BSDRyan Houdek 的 rpmalloc 提交保持 0BSD——这些组件本就不需要异常。这一点在 THIRD-PARTY-NOTICES.md 的组件表格中亦有完整记录Wine LGPL-2.1-or-later、FEX/DXMT MIT、rpmalloc 0BSD、GMP/Nettle/Hogweed LGPL、GnuTLS LGPL-2.1-or-later 等。4.2 明确不覆盖Nothing here changes上游 Wine 代码Wine fork 曾在 LGPL-2.1 第 3 节下整体转换为 GPL-3.0-or-later该转换对该副本不可逆使 Wine 作者的代码在该树中仅以 GPL 授权除他们本人外任何人无法为其附加异常。因此项目准备了一条LGPL 分支路径基于上游 wine-11.4 基线重新构建将 Madeira 作者的补丁以 LGPL-2.1-or-later 重新应用完整溯源记录见 docs/wine-lgpl-provenance.mdApple 库本身转换器库被跟踪在本仓库中其共存是否构成与 GPL 代码的组合作品属法律审查问题本文件不予定论且仅依据 Apple 协议分发——见 app/Madeira/d3d12/METAL-SHADER-CONVERTER-AGREEMENT.txt 第 2.B 节分发仅为着色器转换之目的。五、源码级佐证异常在仓库中的落点附加许可并非孤立的顶层文档它在整个仓库中形成了一套自洽的证据链原生 D3D12 运行时research/madeira-d3d12/LICENSE 完整声明Madeira Converter Exception, version 1依据 GPL-3.0 第 7 节与 Apple Metal Shader Converter 动态库及 Apple 系统框架组合的附加许可并注明其编译所依赖的转换器头文件为 Apache-2.0见 app/Madeira/d3d12/LICENSE-metal-shader-converter-headers.txt运行时 NOTICEapp/Madeira/d3d12/NOTICE.txt 记录了libmetalirconverter.dylibMetal Shader Converter 4.0 beta 2SHA-256073f903b...的获取与校验方式build/madeira-d3d12/fetch-converter.sh并明确转换器不受 Madeira 的 GPL 或 Madeira Converter Exception 覆盖接收方按 Apple 协议取得它仓库中的canary_*.dxil测试着色器则按GPL-3.0-or-later 附加许可授权贡献者协议CONTRIBUTING.md 明确所有贡献按GPL-3.0-or-later附 Madeira Converter Exception, version 1接受并采用 Developer Certificate of Origingit commit -s签署同时提醒 FEX-Emu 的贡献政策禁止 AI 生成代码Wine fork 溯源docs/wine-lgpl-provenance.md 记录了madeira-lgpl分支的构造方式上游 tagwine-11.4 51 个 Madeira 提交-x按序 cherry-pick跳过转换提交 1 个添加 LGPLLICENSE-MADEIRA.md与CONTRIBUTING.md的提交与已退役的 GPL 分支 diff 仅差 22629 行许可声明行、无任何代码改动随包分发的许可证集合构建产物app/Madeira/licenses/与app/Madeira/legal/目录随包携带 GPL-3.0、异常文本、LGPL-2.1、LGPL-3.0、MIT、0BSD、LLVM 文本及 THIRD-PARTY-NOTICES见 app/Madeira/licenses/THIRD-PARTY-NOTICES.txtbuild/stage-licenses.sh负责刷新两份生成副本Xcode 构建在副本过期时会失败。六、由此产生的分发义务Obligations依据 docs/LICENSING.md 与随包 NOTICES附加许可之外仍需履行的义务包括GPL 与专有库组合仅在版权持有人授予附加许可时被允许已满足且不可扩展至 GPL 转换后的上游 Wine 代码——这是 LGPL 分支存在的根本原因LGPL 静态链接义务WineLGPL 分支、gnutls、nettle、hogweed、gmp 被静态链接进主程序。LGPL-2.1 第 6 节 / LGPL-3 第 4 节要求显著声明使用了 LGPL 库并受其覆盖、提供 LGPL 文本副本、提供库的完整对应源代码及用修改后的库重新链接应用的手段。LGPL-3 第 4(e) 节的 Installation Information 义务仅在满足 GPL-3 第 6 节条件即组合作品在用户产品中分发且可安装时触发sideload 的 iOS 应用是否满足该条件属法律审查问题LGPL-2.1 第 6 节的 relink 要求适用于 Wine 与 gnutls提供应用的目标文件是源码的替代方案同时需允许为调试修改对组合进行逆向工程Apple 协议第 2.D 节转换器不得用于非 Apple 设备或作为服务提供——Madeira 仅运行于 Apple 设备通知义务在各 fork 中保留上游版权与许可声明随包携带NOTICE.txt、Apple 协议全文、头文件的 Apache 文本、COPYING与LICENSE-EXCEPTION.md。七、开放事项与适用限制Open ItemsLICENSE-EXCEPTION.md 与 docs/LICENSING.md 明确了发布前的未决事项读者引用本文时应知悉这些前提madeira-lgpl分支已采纳2026-09-16wine 子模块已指向该分支所有下游 Wine 补丁的作者归属待确认git authorship 是证据而非证明需注明任何改编自第三方代码的补丁LGPL 三元组选举已记录GnuTLS 3.8.9 按 LGPL-2.1-or-later、Nettle/Hogweed 3.10.1 与 GMP 6.3.0 按 LGPL-3.0-or-later 选举源码 tarball 与 SHA-256 校验和跟踪于build/gnutls-ios/src干净机器重建/重链接/安装测试未闭环2026-09-16 的递归克隆无法无辅助构建缺失输入与重建配方见 docs/BUILDING.md端到端重建尚需从零复现、签名并安装验证律师审查整套安排需由开源许可律师复核后公开发布。最后必须强调LICENSE-EXCEPTION.md 是版权持有人的许可声明不是法律建议组装后的应用在公开发布前必须由律师审查。从源码结构可以推断这份文件的工程意义在于它把GPL 代码 专有 Apple 组件这一常见开源合规死结通过 GPL-3.0 第 7 节附加许可 上游组件分支化LGPL Wine 分支 自动化钩子与构建期校验pre-push、stage-licenses.sh三重手段拆解为可验证、可追踪、可随包分发的完整方案——这对于任何需要与 Apple 专有组件共存的开源项目都具有直接参考价值。赞分享游戏开发图形学【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址https://gitcode.com/GitHub_Trending/mad/Madeira点击查看免费下载相关推荐Notely项目中的GPL-3.0许可证合规实践Notely项目中的GPL 3.0许可证合规实践 在开源软件开发过程中许可证的规范使用是保障项目合规性的重要环节。近期Notely语音笔记项目在许可证文件处理Buster法律合规开源许可证GPL-3.0的解读与应用Buster法律合规开源许可证GPL 3.0的解读与应用 引言开源合规的重要性 在当今开源软件蓬勃发展的时代遵循开源许可证的要求已成为开发者和组织不可忽视人工智能AI 应用语音GPL-3.0开源许可证完全指南OpenSC2K项目的合规实践解析GPL 3.0开源许可证完全指南OpenSC2K项目的合规实践解析 GPL 3.0开源许可证是当今最流行的自由软件许可证之一它为开发者提供了强大的版权保护机游戏开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

深度学习电力负荷预测实战:LSTM/GRU时序模型完整解析 2026/10/1 13:22:44

深度学习电力负荷预测实战:LSTM/GRU时序模型完整解析

简介:面向课程设计与期末大作业的深度学习区域电力负荷预测项目,基于Python构建,适合机器学习初学者及需要完整项目范例的学生参考。项目覆盖数据预处理、模型构建、训练评估与结果可视化,源码结构化划分为数据加载、训练器、模型…

阅读更多 →
MFC扫雷实战:从对话框工程到GDI双缓冲与递归展开 2026/10/1 13:22:44

MFC扫雷实战:从对话框工程到GDI双缓冲与递归展开

简介:这份资源是基于MFC框架实现的扫雷游戏完整工程,面向具备一定C基础、希望借助经典案例入门Windows GUI开发或课程设计的学习者。项目将扫雷核心逻辑与MFC的窗口管理、消息映射、CDC图形绘制、资源管理及状态维护等机制结合,帮助读者理解如…

阅读更多 →
Python爬虫+数据分析+LSTM预测与机器学习可视化完整实践 2026/10/1 13:22:44

Python爬虫+数据分析+LSTM预测与机器学习可视化完整实践

简介:面向Python爬虫与数据分析学习者的完整实践项目,集成信息爬取、LSTM时序预测与机器学习分析,适合课程设计、毕业设计、项目立项演示或作为实战入门参考。压缩包共472个文件,源码以Python脚本和Jupyter Notebook为主&#xff…

阅读更多 →
用 TypeScript 类型系统实现动态参数柯里化:type-challenges 00462 Currying 2 深度解析 2026/10/1 13:22:44

用 TypeScript 类型系统实现动态参数柯里化:type-challenges 00462 Currying 2 深度解析

示例工程 【免费下载链接】type-challenges Collection of TypeScript type challenges with online judge 项目地址: https://gitcode.com/GitHub_Trending/ty/type-challenges 点击查看 免费下载 type-challenges 的第 00462 题(Currying 2&#xff0…

阅读更多 →
AnythingLLM 实战:从本地知识库到 Agent 工作区的完整搭建指南 2026/10/1 13:22:37

AnythingLLM 实战:从本地知识库到 Agent 工作区的完整搭建指南

1. 为什么我要把 AnythingLLM 当作主力工作台 第一次接触 AnythingLLM 是在一个需要把几十份内部文档变成可问答知识库的项目里。当时试过几种方案:纯提示词拼接、自己写检索脚本、用现成的云端知识库服务。纯提示词拼接上下文一长就崩,自己写检索脚本维…

阅读更多 →
Apple Pay 接入实战:从证书配置到支付令牌解密全链路 2026/10/1 13:22:37

Apple Pay 接入实战:从证书配置到支付令牌解密全链路

简介:本资源面向在SpringBoot后端集成iOS端Apple Pay的开发者,聚焦支付回调验证这一关键环节,帮助解决支付令牌解码、签名校验与交易状态确认等实际问题。压缩包共98个文件,约93KB,以70个xml配置、10个class字节码、8个…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉