如何向Madeira iOS游戏模拟器贡献代码:GPL-3.0与DCO签名完整指南 如何向Madeira iOS游戏模拟器贡献代码GPL-3.0与DCO签名完整指南【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/MadeiraMadeira 是一个让 Windows x86-64 PC 游戏免越狱运行在 iOS 上的开源项目基于 FEX-Emu Wine DXMT 构建。向它贡献代码前最重要的两件事理解GPL-3.0 许可证边界并在每个提交上完成DCO 签名。本指南带你走完整套流程。1 分钟了解 Madeira你将为谁写代码Madeira 把整个 Windows 生态塞进一个 iOS App 里各层分工如下摘自 README.md组件作用FEX-Emu运行时将 x86 / x86-64 代码翻译为 ARM64Wine 11.4提供 Windows 环境为 ARM64EC 编译32 位游戏走 WoW64DXMT用 Metal 绘制 Direct3D 9/10/11madeira-d3d12项目自研的 Direct3D 12 运行时运行时用 Apple Metal Shader Converter 转换 DXIL 着色器主要目录入口iOS 应用主体SwiftUI 前端 Wine 桥接app/自研 D3D12 运行时madeira-d3d12/主机端检查脚本与 x86/x64 测试程序tests/官方文档docs/许可证体系提交前必须懂的 3 件事1. GPL-3.0-or-later核心许可证Madeira 整体采用GPL-3.0-or-later见 LICENSE。项目选择 GPL 而非 LGPL 的意图很明确让衍生作品保持开源。因此你提交的代码会并入 GPL-3.0-or-later 体系这是接受贡献的前提。2. Madeira Converter Exception关键附加许可Madeira 链接了 Apple 专有的 Metal Shader Converter 库GPL 默认不允许这种组合。为此版权方通过 GPL-3.0 第 7 条授予了Madeira Converter Exception, version 1见 LICENSE-EXCEPTION.md允许将代码与 Apple 该库及系统框架链接后分发。⚠️ 提交贡献即表示你的代码同样携带该附加许可。完整义务清单LGPL 静态链接、通知保留等记录在 docs/LICENSING.md。3. 各子模块许可不同别搞混FEX、wine、dxmt、madeira-dock是四个 submodule见 .gitmodules各自携带独立的LICENSE-MADEIRA.md与CONTRIBUTING.md组件上游许可Madeira 修改部分Wine forkLGPL-2.1-or-laterLGPL-2.1-or-laterFEX-Emu / DXMT forkMITGPL-3.0-or-later 附加许可rpmalloc fork0BSD修改部分 GPL-3.0-or-later 附加许可madeira-dock—GPL-3.0-or-later 附加许可两条铁律见 CONTRIBUTING.md❌ 不要删除或篡改任何 fork 中的上游版权声明与许可文本❌ FEX-Emu 上游禁止 AI 生成的代码——这些 fork 含大量 AI 辅助工作不要把它们里的改动直接推给 FEX 上游向上游提交前务必先查该项目自己的贡献政策。完整组件许可对照表THIRD-PARTY-NOTICES.md各类许可证文本存放在 LICENSES/。一键上手DCO 签名与 git commit -s 操作步骤DCODeveloper Certificate of Origin开发者源始证书是一种轻量承诺你通过签名声明这段代码是我写的或我有权以该许可证提交。Madeira 用 DCO 替代签署 CLA提交时只需多带一个-s参数git clone https://gitcode.com/GitHub_Trending/mad/Madeira cd Madeira # 修改代码后签名提交 git commit -sgit commit -s会在提交信息末尾自动追加一行Signed-off-by: 你的名字 你的邮箱。这一行就是 DCO 签名本身缺少它的提交不符合贡献要求。几个新手常见问题忘了加-s怎么办用git commit --amend -s给最近一次提交补签名即可。邮箱对不上签名里的邮箱应与你的 Git 账户一致方便追溯作者身份。批量检查可以用git log --no-verify --format...或git show -s --format%(trailers)查看每笔提交是否带Signed-off-by。构建与测试提交前的自检清单Madeira 是多组件构建Wine unix 库、ARM64EC 模块、FEX、DXMT、App且部分工具链不在仓库内。docs/BUILDING.md 逐条记录了从干净 checkout 出发的完整构建步骤和每步的验证状态动手改代码前先通读一遍。提交前建议的自检顺序按 docs/BUILDING.md 对应组件的脚本重新编译确认没有把未验证UNVERIFIED的步骤当成已验证运行 tests/host/ 下的检查脚本如check-config-catalog.py、check-launch-routing.py以及 tests/x64/ 里的 x86-64 测试程序若改动涉及许可证文本或打包资源Xcode 构建会在许可副本过期时直接失败由build/stage-licenses.sh负责刷新注意同步更新确认git commit -s签名无误。提示构建还依赖外部输入工具链、Microsoft VCRuntime 等获取方式见 tools/fetch-vcruntime.md 与 docs/BUILDING.md 开头的仓库外输入表格。向上游提交一条容易踩坑的路径CONTRIBUTING.md 特别提醒打算回馈给上游的改动应针对上游项目自己的代码树、在上游自己的许可证下提交而不是通过 Madeira 的 fork 中转。特别是FEX-Emu 上游不接受 AI 生成的代码Wine fork 的 LGPL 分支从上游 wine-11.4 基线重建来源记录在 docs/wine-lgpl-provenance.md回补补丁时注意保持 LGPL 边界。快速参考贡献前 5 问问题答案我的代码用什么许可GPL-3.0-or-later Madeira Converter Exception需要签什么git commit -s追加Signed-off-byDCO能删上游版权头吗不能AI 写的代码能提吗本仓库接受 AI 辅助工作但禁止转发给 FEX 等明确禁止的上游构建不过怎么办先查 docs/BUILDING.md 的 UNVERIFIED 步骤说明掌握 GPL-3.0 边界、DCO 签名和子模块许可差异这三点你的第一笔 Madeira 贡献就可以出发了。【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考