Categories
程式開發

開源項目被 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 要求下架:上游項目閉源了? 1

圖片來自The Register

從 edgefs-smartos 的發佈時間來看,第一個版本是2019年7月18日發布的 v1.2.19:

開源項目被 GitHub 要求下架:上游項目閉源了? 2

不過,目前並沒有明確消息能證明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