vlambda博客
学习文章列表

开源项目被 GitHub 要求下架:上游项目闭源了?

作者 | 李俊辰
近日,开发者 jsiepkes 在 Hacker News 上分享了自己被 GitHub 要求下架开源项目仓库的经历。原因是 jsiepkes 在 GitHub 开源了一个名为 edgefs-smartos 的项目,这个项目使用了 EdgeFS 的代码,早在 jsiepkes 分享这个项目的时候,这些代码还是开源的,可现在这些代码闭源了。
开源项目被 GitHub 要求下架

这位 jsiepkes 小哥的开源项目使用了 EdgeFS 的代码,EdgeFS 的前身是“NexentaEdge”,当时是 Nexenta 公司的开源项目,使用 Apache-2.0 License,结果后来 Nexenta 这家公司被 DataDirect Networks(即 DDN)公司全资收购,DDN 公司大手一挥,表示 NexentaEdge 要改名为 EdgeFS,同时也将其闭源。

将 EdgeFS 闭源之后,拥有其代码版权的 DDN 公司公司手持《美国数字千年版权法案》(DMCA)请求 GitHub 删除其平台上所有已 fork EdgeFS 的开源仓库,其中就包括 edgefs-smartos 这个项目。所以,这位 jsiepkes 小哥收到了 GitHub 发送的 DMCA 删除通知:

https://gist.github.com/siepkes/8e1f51e2ce9e44ba7116ed79e49298f4

EdgeFS 闭源时间引发争议

DDN 公司的做法引起了不少开发者的不满。有开发者表示,DDN 拥有 EdgeFS 的版权,自然有权力将 EdgeFS 闭源,但因此要求删除 EdgeFS 曾经开源时的项目就说不过去了。也有网友觉得应该从 DDN 下架自己在 GitHub 上的代码时开始算起。

因此引起争议的地方在与 EdgeFS 的闭源时间和 edgefs-smartos 发布的时间孰前孰后。最早报道 DDN 收购 Nexenta 这一消息的媒体是 The Register,时间为 2019 年 5 月 7 日:

开源项目被 GitHub 要求下架:上游项目闭源了?图片来自 The Register

从 edgefs-smartos 的发布时间来看,第一个版本是 2019 年 7 月 18 日发布的 v1.2.19:

不过,目前并没有明确消息能证明 DDN 公司是在 edgefs-smartos 发布前将 EdgeFS 闭源的,对于这位开发者来说,如果 DDN 公司能够拿出证据证明 edgefs-smartos 发布前自己就已经修改了 EdgeFS 的开源许可,那么小哥的项目就只能被迫下架了。

还有另一种说法:小哥在编写 edgefs-smartos 的时候,fork 的是 GitHub 上的 edgefs 仓库,而这个 edgefs 仓库才是直接 fork EdgeFS 的项目,所以在小哥开源 edgefs-smartos 的时候,可能并不清楚 EdgeFS 是否处于开源状态。

开源项目闭源:不是个例

这样的事并不是第一次发生。在 2018 年 8 月,数据库开发商 Redis Labs 闭源了 RediSearch、Redis Graph、ReJSON、ReBloom、Redis-ML 等项目,当时引起了开源社区不小的骚动;同年 11 月,广受欢迎的图数据库 Neo4j 产品副总裁 Philip Rathle 宣布,从 Neo4j 3.5 版本开始,企业版将仅在商业许可下提供,不再在 GitHub 上提供源代码,所有依赖 Neo4j 的开源项目全部受到影响;还有之前 Oracle 收购 MySQL 后,很多人担心其会不会将 MySQL 闭源,后 fork 出了 MariaDB......

因依赖的开源项目闭源而导致下游项目受限这样的事件虽是小概率事件,但也确实发生了不止一起,希望广大开发者在开源自己的项目的时候也可以多思考一下,避免这种糟心的事情发生在自己身上。

目前 edgefs-smartos 还没有被下架。大家怎么看这件事呢?

延伸阅读

https://news.ycombinator.com/item?id=23113226