火山引擎违反Apache许可证协议:商业不遵守武德?

昨天,火山引擎被曝不遵守 Apache 2.0 许可证要求,其中的 Application Performance Monitoring – Distributed Tracing(应用性能监控全链路版)以非法方式重新发行了 Apache SkyWalking。

Apache SkyWalking 官网上声称:

火山引擎的团队更改了所有软包名称,删除了 Apache 软件基金会的抬头,在重新发行时没有保留 Apache 软件基金会和 Apache SkyWalking 的 LICENSE(许可证)和 NOTICE(告知)文件。此外,在对方的网站上找不到任何声明他们在发行 SkyWalking 的内容。

起因

Apache SkyWalking 是一个分布式系统的开源 APM,是 Apache 软件基金会的顶级项目。

1 月 28 日,Apache SkyWalking 收到了一个提交者(匿名)的许可证违规报告。他们有一个云服务,叫做应用性能监控全链路版(Application Performance Monitoring – Distributed Tracing)。在 Java 服务监控部分,匿名提交者提供了这个代理下载链接:

​https://datarangers.com.cn/apminsight/repo/v2/download/java-agent/apminsight-java-agent_latest.tar.gz​

Apache SkyWalking 官方团队下载并在已经将其存档,已经确认这是一个 SkyWalking Java agent 的二次分发,并给出了三点证据,读者可以与官方的 SkyWalking 源代码(https://github.com/apache/skywalking-java)进行比较。

细节

以下是官网披露的违反 Apache 2.0 许可证的细节:

1、第一个也是最简单的部分是 agent.config 文件,该文件使用相同的配置键和相同的配置格式。

这是火山引擎的版本,可以对比 SkyWalking agent.config

2、在 apmplus-agent.jar 即 Volcengine 的代理核心 jar 文件中,你可以轻松找到几个与 SkyWalking 的核心类一模一样的核心类。

ComponentsDefine 类根本没有变化,就连组件 ID 和名称都一样

这是火山引擎的版本,SkyWalking 的版本链接:

​https://github.com/apache/skywalking-java/blob/395ce4f86ae14cf24af489a6aa7e849b1d9a27ed/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java。​

3、代码名称、软件包名称和代码层次结构全部与 SkyWalking 6.x 版本一模一样。

火山引擎版本的软件包层次结构

SkyWalking 的版本详见:

​https://github.com/apache/skywalking-java/tree/v6.6.0/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context。​

Apache 许可证

Apache 许可证是著名的非盈利开源组织 Apache 采用的协议,Apache 2.0 许可证相对 GPL 已经非常宽松了。比如:商业软件可以任意的使用 BSD,Apache 2.0 发布的软件代码不需要开放源代码,只需要提及代码的原出处就可以了。

协议中明确写出,只要遵守该许可的条款和条件的前提下,每位贡献者将被授予永久的、全球性的、非排他性的、免费的、免版税的、不可撤销的版权许可,以复制、准备衍生作品、公开展示、公开使用、再许可、分发本作品和其衍生作品(无论是以“源码”还是“目标”形式)。

也就是不仅可以用,还可以对基于 Apache License Version 2.0 的作品或衍生作品进行修改或增补,并应用到商业项目。但前提是满足以下几个条件:

  1. 需要给代码的用户一份 Apache License;
  2. 如果你修改了代码,需要在被修改的文件中说明;
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;
  4. 如果再发布的产品中包含一个 Notice 文件,则在 Notice 文件中需要带有 Apache License。你可以在 Notice 中增加自己的许可,但不可以表现为对 Apache License 构成更改。

也就是说,就是需要在相关产品的发行版本,Notice 文件、源码或文档里,添加归属声明的可读拷贝,并给接收者提供开源项目中提供的 Apache License Version 2.0 许可证的拷贝,在分发的衍生作品的源代码中,必须保留本作品源码中的所有版权、专利、商标和归属声明。

反思

所有的开源许可证都带有”披露要求”(notice requirement),即要求软件的分发者必须向用户披露,软件里面有开源代码。如果一种开源许可证没有任何使用条件,连保留作者信息都不需要,那么就等同于放弃版权了。

其实遵守并不难。一般来说,你只要在软件里面提供完整的原始许可证文本,并且披露原始作者,就满足了”披露要求”。

开源协议在方便每个开发者贡献代码的同时,不但保护原始作者的身份,也是为了可以阻止其它人将某个产品据为己有。

目前,世界上流行的开源协议也不少,如何来选择也是开发者需要考虑的问题。关于常用的开源许可证,最流行的六种 —-GPL、BSD、MIT、Mozilla、Apache 和 LGPL—- 之中做选择,也很复杂。

乌克兰程序员 Paul Bagwell,画了一张分析图,这里附上一张中文版,希望能帮助大家搞清楚这六种许可证之间的最大区别。

总结

目前国际公认的开源许可证的共同特征是,都允许用户免费地使用、修改、共享源码,但是都有各自的使用条件。在如今一个大的开源开发背景下,开源软件衍生的商业产品越来越多,开发者在选择和使用开源代码时,一定要注意遵守开源协议。

火山引擎相关负责人表示,火山引擎接到社区反馈后,第一时间调查处理此事,正在相关产品文档和分发SDK上加入SkyWalking的版权声明,并联系开发者沟通道歉。

火山引擎会严格遵循开源社区规范,全面自查,避免此类问题再次发生。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/130132.html<

(0)
运维的头像运维
上一篇2025-02-25 22:45
下一篇 2025-02-25 22:46

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注