尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ZeroTierOne 的 MPL-2.0 许可怎么用不踩线:面向集成者与二次开发者的完整指南
ZeroTierOne 的 MPL-2.0 许可怎么用不踩线面向集成者与二次开发者的完整指南【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne你正准备把 ZeroTierOne 的虚拟网络引擎集成进产品法务给你一周时间给出合规结论闭源行不行改了代码要不要公开这篇文章基于 LICENSE-MPL.txt 全文直接回答 ZeroTierOne MPL-2.0 合规里的三个问题——能不能用、改了怎么办、发布会不会违规。先定位MPL-2.0 在自由光谱的哪个位置先看两个极端MIT / Apache-2.0最宽松一端改完之后可以闭源、换许可只要保留原声明即可。GPL-3.0最严格一端一旦修改整个衍生程序都必须以 GPL 发布。MPL-2.0 站在中间但有自己的逻辑它按文件而不是按程序划分义务。你实际改动过的源文件许可证 §1.10 称之为 Modifications必须继续以 MPL-2.0 发布你新写的文件、你链接进去的其他代码都不受牵连。这个设计在本仓库的目录布局里能看到实体根目录 LICENSE.txt 一句话写明node/、osdep/、service/ 等全部核心代码适用 MPL-2.0ext/ 下的第三方代码保留原始许可nonfree/ 下的控制器代码则放在另一套非自由许可下。免费部分与非免费部分被物理隔离——项目自己就是这套许可的典型用法。免费拿到手的权利免费使用、修改、分发§2.1(a) 授予全球范围、免版税、非独占的许可。人话版你可以把它编进自家产品去卖不需要付任何授权费。附带专利许可§2.1(b) 把每位贡献者贡献部分所覆盖的专利一并授权给你。你使用到的这部分代码不用担心被贡献者以专利起诉。可以闭源也可以与 GPL 混用§3.3 允许你把 Covered Software 与自己的代码组合成 Larger Work整体按你自己选的许可发布如果另一部分是 GPL/LGPL/AGPL 作品§3.3 还允许你按 Secondary License 双重分发。动代码、发版本时必须履行的义务改过的文件必须留在 MPL 下§3.1 要求所有以源码形式的分发含你的 Modifications都必须按 MPL-2.0 进行并告知接收方适用哪个许可、如何获取许可文本。发二进制就要让源码可得§3.2 要求分发 Executable Form 时以合理方式、及时提供对应源码收费不得超过分发成本。文件头声明不能删§3.4 禁止删除或改动源码中的许可与版权声明。看一眼 node/Node.cpp 开头那几行 MPL 声明——改文件时不动它就是最省事的做法。复制出来的新文件也算数注意 §1.10(b)新文件只要包含了 Covered Software也按 Modifications 对待。把某段 MPL 代码抄进你新建的文件这个新文件同样归 MPL。只要改动留在公司内部、不分发上述义务根本不会触发——触发点是你把软件交到外部的那一刻。绝对不能碰的红线⚠️ 这四条踩中任何一条后果都不是重新打包能解决的删掉文件头的 MPL 声明。§2.7 写明 3.1–3.4 是许可授予的前提条件删声明等于自我剥夺许可此时你继续分发就是纯侵权而不是不合规分发。就专利起诉贡献者。§5.2 的反制条款你指控 Covered Software 侵犯你的专利所有贡献者给你的专利授权同时终止。拿商标蹭背书。§2.3 末尾明确许可不含任何商标、标识权利。用 ZeroTier 的名义或图标宣称官方认证属于商标侵权而非许可问题。商用 nonfree/ 下的控制器。nonfree/ 里的代码适用 nonfree/LICENSE.md 的 source-available 许可商业使用必须另行购买授权MPL 的那套规则管不到它。三种角色推演你的决策路径角色第 1 步第 2 步第 3 步个人项目集成者原样引入 agent不改代码无公开源码义务只保留文件原有 MPL 头宣传时不使用 ZeroTier 名称与图标企业内部改造者先记录将改动的 node/、osdep/ 文件清单改后保留文件头并追加修改说明版本对外交付时附上完整源码内部版可留档二次开发转售者把自研新文件与MPL 修改文件分开管理随二进制附源码获取方式§3.2需与 GPL 产品并存时确认未添加 Exhibit B 的 Incompatible With Secondary Licenses 声明发布前自查清单✅ 照下面六步走一遍即可每步都指向可核对的文件对比官方版本列出全部修改过的文件确认每个修改文件的头部与 one.cpp 的模板一致/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. ... (c) ZeroTier, Inc. */ /* Modified: 2026-09-01, 你的名字/公司, 改动说明 */随分发包附上完整 LICENSE-MPL.txt以及 LICENSE.txt 中关于核心代码、ext/、nonfree/ 的许可划分说明。纯二进制发布时附下载链接或可按不低于成本价索取源码的声明对应 §3.2。检查 MPL 文件里没有混入 GPL 代码确需组合的走 §3.3 的 Secondary License 路线并同时附上两份许可文本。核对第三方依赖ext/ 下各库保留原许可打包清单如 debian/control 的依赖与描述字段与实际许可状态一致。发布前全文检索 ZeroTier清除任何可能被解读为官方背书的表述。这套许可对 ZeroTierOne 意味着什么MPL-2.0 让 ZeroTierOne 把网络引擎做成完全开放、可自由修改甚至闭源商用的部分同时把控制器业务留在 nonfree/ 里变现——核心开源、服务收费这正是该项目的商业结构。对你来说结论可以浓缩成一句agent 随便用、随便改、随便卖唯一代价是改过的文件本身保持 MPL 且源码可得。现在就能做的一件事动手修改前先列出你计划触碰的 MPL 文件清单每处改动写回该文件头部——这份清单就是你给法务的最终答案。【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

OpenMontage 工程实践:React 函数式 setState 更新指南——用 useCallback 稳定回调、根治 stale closure

OpenMontage 工程实践:React 函数式 setState 更新指南——用 useCallback 稳定回调、根治 stale closure

OpenMontage 工程实践:React 函数式 setState 更新指南——用 useCallback 稳定回调、根治 stale closure 【免费下载链接】OpenMontage Worlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and pro…

📅 2026/9/10 12:40:24
Java大数据后端项目快速落地指南

Java大数据后端项目快速落地指南

简介:这是一套面向Java后端开发者与大数据初学者的实战型项目源码,聚焦于企业级大数据平台后端服务的设计与实现,适用于学习Spring Boot微服务架构、大数据组件集成及高并发数据处理逻辑。资源共521个文件,主体为462个Java源文件&…

📅 2026/9/10 12:35:23
Skills System

Skills System

Skills System 【免费下载链接】deepagents The batteries-included agent harness. 项目地址: https://gitcode.com/GitHub_Trending/de/deepagents You have access to a skills library that provides specialized capabilities and domain knowledge. User Skills:…

📅 2026/9/10 12:35:23
MORE NEWS

更多资讯

📰

ReVanced Manager 应用管理指南:在 Apps 标签页中查看、打开、重新修补与卸载已修补应用

ReVanced Manager 应用管理指南:在 Apps 标签页中查看、打开、重新修补与卸载已修补应用 【免费下载链接】revanced-manager 💊 Application to use ReVanced on Android 项目地址: https://gitcode.com/GitHub_Trending/re/revanced-manager Re…

📰

ToolJet 数据库查询实战指南:GUI 模式、SQL 编辑器、联表与 JSON 查询全解析

ToolJet 数据库查询实战指南:GUI 模式、SQL 编辑器、联表与 JSON 查询全解析 【免费下载链接】ToolJet Open-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI…

📰

如何理解 Motrix 浏览器扩展配对协议 MBP1:SPAKE2 首次配对与 AEAD 安全通道

如何理解 Motrix 浏览器扩展配对协议 MBP1:SPAKE2 首次配对与 AEAD 安全通道 【免费下载链接】Motrix A full-featured download manager. 项目地址: https://gitcode.com/GitHub_Trending/mo/Motrix 如果你要开发、审查或二次接入 Motrix 浏览器扩展与 Motr…

📰

Angular 编译器 ngtsc 的 Shims 机制解析:如何把“虚拟源码文件“无缝注入 TypeScript 程序

Angular 编译器 ngtsc 的 Shims 机制解析:如何把"虚拟源码文件"无缝注入 TypeScript 程序 【免费下载链接】angular Deliver web apps with confidence 🚀 项目地址: https://gitcode.com/GitHub_Trending/an/angular 本篇技术指南以 A…

📰

技术新手到中级的成长路径与学习方法

1. 从零开始的技能升级之路 作为一名在技术领域摸爬滚打多年的老手,我特别理解新手入门时的迷茫与困惑。看到"小白努力学习技术,从1级升级开始"这个标题,让我想起了自己当年从零开始的经历。技术学习确实像打游戏升级一样&#xff…

📰

OpenCode 如何在 GitLab 的 Issue 与 Merge Request 中通过 @opencode 触发任务

OpenCode 如何在 GitLab 的 Issue 与 Merge Request 中通过 opencode 触发任务 【免费下载链接】opencode The open source coding agent. 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 如果你希望不离开 GitLab,就能让 AI 在 Issue 或 Me…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬