十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ZeroTierOne 开源许可证解析:MPL-2.0 合规指南,一次讲清“改了再分发“的全部义务

ZeroTierOne 开源许可证解析:MPL-2.0 合规指南,一次讲清“改了再分发“的全部义务 ZeroTierOne 开源许可证解析MPL-2.0 合规指南一次讲清改了再分发的全部义务【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne改完代码再分发会不会吃律师函这是使用 ZeroTierOne 时最高频的顾虑。ZeroTierOne 是一个把地球上的设备、虚拟机和容器互联成同一局域网的虚拟以太网交换机软件定义 SDN 组网工具它的主体代码采用 Mozilla Public License 2.0MPL-2.0许可。这篇文章不堆法条只回答你决策时要用的问题哪些文件属于 MPL-2.0、哪些文件另有许可、什么行为触发源码公开义务、按你的身份开发者/企业/SaaS 提供方/分发者各自要做什么最后给一份可直接照抄的合规清单。MPL-2.0 在 ZeroTierOne 里管到哪些文件先看懂许可边界先说结论这个仓库不是一锅 MPL-2.0而是三块领地。LICENSE.txt 在开头 5 行就把边界划清楚了node/、osdep/、service/等主体代码 → MPL-2.0见 LICENSE-MPL.txtnonfree/目录内嵌网络控制器→ 单独的源码可见、非商业使用许可见 nonfree/LICENSE.md商业使用需另行购买授权ext/目录第三方库如 hiredis、libpqxx、miniupnpc→ 保留各自原始许可。这个划界方式恰好暴露了 MPL-2.0 的核心特性文件级 copyleft。它不像 GPL 那样传染整部作品只约束被修改的源文件本身允许你把未修改的新文件和专有代码放在同一项目里。对照表一目了然对比维度MPL-2.0本项目MITGPL-3.0修改文件的公开粒度单个文件§1.10 按文件定义修改无需公开仅需保留声明整部衍生作品与你新写的代码组合时新文件可自选许可§3.3 Larger Work无约束整体需采用 GPL专利授权贡献者对其贡献授予专利许可§2.1(b)无明确专利条款有明确专利授权与反诉条款触发公开义务的时点分发时§3.1、§3.2分发时仅保留声明分发时商标权明确不在授权范围内§2.3未明确授权未明确授权一个类比MPL-2.0 像租房改造——你改了房东的厨房MPL 文件改造图纸修改后的源文件必须按原规则公开但你后来加盖的书房新文件产权归你可以闭源。义务地图必须做的事与不能做的事各对到条款号 下面每一条都给出条款依据和项目内的真实文件方便你对照执行。必须做的事义务条款依据项目内对应位置分发源文件含你的修改时必须继续以 MPL-2.0 提供并告知接收方许可及获取方式§3.1node/Node.cpp 文件头的 MPL 声明就是该义务在源码中的落地形式分发可执行文件时必须提供合理方式获取源码收费不得超过分发成本§3.2(a)打包时可参考 debian/changelog 的发布记录格式保留版权、专利、免责声明与责任限制等通知内容§3.4LICENSE-MPL.txt 第 6、7 节的声明提供付费保修/支持时只能以你自身名义并承诺赔偿贡献者因此产生的责任§3.5—若分发声明了与二级许可不兼容的源码需附 Exhibit B 声明§10.4、§1.5本项目源码未使用该声明默认可按 §3.3 与 GPL/LGPL 组合不能做的事红线条款依据说明不得用 EULA 限制接收方对源码的 MPL 权利§3.2(b)可执行文件可以换个许可卖但源码权利不能缩水不得删除或篡改源文件中的许可/版权通知§3.4只允许更正已证实的事实错误不得把 ZeroTier 商标、Logo 当作品牌授权§2.3第 2 节末段许可只覆盖代码权利不含商标不得对贡献者发起专利侵权诉讼主张§5.2触发即丧失全部贡献者授予的许可专利反制条款不得把nonfree/控制器用于商业场景而不购商业授权nonfree/LICENSE.md该目录不属于 MPL-2.0商业使用需与 ZeroTier, Inc. 另签协议角色闯关4 类身份各自的合规问答开发者改代码要回传授权范围怎么算Q我修改 node/ 下的文件需要签什么协议不需要额外协议。MPL-2.0 下每位贡献者在首次分发其贡献时§2.2自动按 §2.1 授予全球范围、免版税、非独占的复制/修改/分发许可含对其贡献的专利许可§2.1(b)。§2.5 只要求你认为贡献是自己的原创或有足够权利属于陈述条款而非签约动作。Q给修改文件加合规标注怎么加保留原文件头追加你自己的版权行即可。以 node/Node.cpp 的真实头部为模板/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. * * (c) ZeroTier, Inc. * https://www.zerotier.com/ */前三行是 §3.4 要求你保留的原始声明不可删改第 5 行是原版权行。你修改后只需在版权行后补一行如(c) 2026 你的名字/公司修改了 xxx 函数。§3.4 同时禁止你删除原有的免责与责任限制语句。企业内部使用只在内网部署要开源吗Q我改了osdep/LinuxEthernetTap.cpp的性能实现但只给公司内部机器部署不对外分发。不用开源。MPL-2.0 的公开义务由分发触发§3.1、§3.2 均以 distribution 为前提。纯内部部署不构成分发源码保留在内部即可但建议留存修改文件清单以备将来对外发布时补义务。Q内部生产环境用到了nonfree/的内嵌控制器算合规吗这是最容易被忽视的一条nonfree/不适用 MPL-2.0。按 nonfree/LICENSE.md 的定义为营利性公司谋利的任何使用均属商业使用必须持有商业授权仅非商业用途个人、教学、30 天内评估免授权。企业内网生产环境属于商业使用需联系官方取得许可。SaaS 提供方对外卖服务源码交不交Q我基于 ZeroTier 给客户托管虚拟网络服务用户只是通过 Web 控制台使用要不要开源MPL-2.0 没有网络交互即触发的条款那是 AGPL 的特性§1.12 虽把 AGPL 列为二级许可但触发条件仍是分发。只要你不把 agent 的可执行文件交到用户手上不构成 §3.2 意义上的分发。Q但我确实会把 agent 安装包发给客户的终端设备怎么办此时触发 §3.2(a)你必须以合理方式、不超过分发成本的价格提供被修改源文件的获取渠道如提供下载链接或刻录介质。你自研的管理后台作为独立文件打包属于 §3.3 定义的 Larger Work其余部分可按你自己的条款分发只要不限制接收方对 MPL 源码的权利§3.2(b)。二次分发者重新打包二进制最少要做几件事Q我把编译好的 ZeroTierOne 打进自己系统的软件源流程是什么三步① 包内保留 LICENSE-MPL.txt 全文② 按 §3.4 保留每个源文件的许可头不得清理③ 按 §3.2(a) 附上源码获取方式。项目自身的打包产物可作为参照debian/ 下的 debian/rules 与 debian/changelog以及容器化部署入口 Dockerfile.release。Q能在分发时收费或加商业条款吗可以。§2.1 授予的是免版税许可但 §3.2(b) 允许可执行文件按其他条款分发§3.5 允许你以自身名义附加保修、支持等付费服务——前提是明示这些服务由你单独提供且不触碰源码侧的 MPL 权利。合规自检清单照抄这 9 条再动手查领地打开你要改的文件看头部声明。MPL 头如 node/Node.cpp还是 nonfree 头如 nonfree/controller/EmbeddedNetworkController.cpp领地决定适用哪份许可。查商业授权若涉及nonfree/目录且用途属于 nonfree/LICENSE.md 定义的Commercial Use先取得商业授权再动工。保留声明修改 MPL 文件时只增不删——原 MPL 三行声明、原版权行、免责条款全部保留§3.4。补自己的行追加一行版权/修改说明写清修改者与日期方便审计。新文件单独放可闭源的新功能放独立新文件不与 MPL 文件混杂§1.7 Larger Work 定义。包内带许可全文任何分发物源码或二进制随附 LICENSE-MPL.txt并在 README 或包说明中指明获取途径§3.1。备好源码渠道分发二进制前准备好源码获取方式并验证可达§3.2(a)。别碰商标你的产品不使用 ZeroTier 名称与 Logo 做品牌§2.3引用项目名做事实描述可以。记修改台账维护一份修改文件清单可仿照 debian/changelog 格式分发时它就是你的合规证据。资源索引许可文本与安全政策去哪找一句话总结在 ZeroTierOne 里MPL-2.0 管文件nonfree/管钱ext/各管各的——分清领地义务就只剩分发时的那几条。完整许可文本LICENSE-MPL.txt、nonfree/LICENSE.md仓库许可边界总说明LICENSE.txt安全漏洞报告渠道不接受公开 issueSECURITY.md版本支持矩阵哪些版本仍有安全更新SECURITY.md 的 Supported Versions 表发行版打包合规范例debian/各版本发布记录RELEASE-NOTES.md非商业控制器组件说明nonfree/controller/README.md以上条款释义以 LICENSE-MPL.txt 官方文本为准涉及具体商业部署决策时建议再经法务复核。【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表