向蟑螂生命力致敬的CockroachDB更改授權,從CockroachDB 19.2開始,將以寬鬆的商業原始碼授權(Business Source License,BSL)取代原本的Apache 2.0(Apache License version 2),使用者仍然可以繼續免費的使用CockroachDB,但是雲端服務供應商日後便不能在沒有購買許可授權的情況,以CockroachDB提供商業服務。

不少雲端供應商利用成功的開源專案,經重新包裝後使其成為能獲取暴利的專有服務商品,這樣違反開源軟體理念的例子一再發生,不少開源專案紛紛修改授權,以保護專案利益不受濫用。Redis Labs在去年的時候,修改為Redis開發的多個模組授權,開始採用以Commons Clause修改的Apache 2.0授權許可,限制現有雲端服務供應商,不能再以單純提供Redis Labs模組的Redis託管服務收費。

而Cockroach Labs修改授權的原因,就是要防止AWS分叉Elasticsearch專案事件重演。在今年3月的時候,Elasticsearch原廠批評AWS分叉Elasticsearch專案,以開放的名義推出自有版本,但其實全為私利。AWS指控原廠在開源的Elasticsearch專案中混雜私有程式碼,會造成貢獻者混亂,而原廠則表示,他們一直以來就以可插拔和乾淨的實作方式建構專案,AWS是因為專案發展不如預期,才自行分叉Elasticsearch。

Cockroach Labs提到,由於許多供應商,利用其特殊的地位,提供開源產品即服務,而為了維持開源和獲利的平衡,他們決定將CockroachDB核心的授權從Apache 2.0更換成BSL。CockroachDB用戶仍然可以在任意數量的節點擴展CockroachDB,或是在應用程式中嵌入CockroachDB,將應用程式交付給客戶或是作為服務運作都可以,唯一禁止的就是提供資料庫即服務(DBaaS)的商業版本。

不過,也為了能繼續建構CockroachDB的開源核心,BSL授權有時間限制,在每個版本發布後三年,授權許可會從BSL轉換為標準的Apache 2.0,雲端服務供應商此時就能夠利用CockroachDB,創建商業資料庫即服務,並保證其核心產品為單純的開源狀態。

Cockroach Labs解釋,BSL是參數化的授權許可,專案可以依照需求加入不同的附加使用同意條件,CockroachDB的附加使用同意條件就是,只要不提供商業資料庫即服務,要在多少節點使用CockroachDB都沒關係,而發布版本三年之後即解除此限制,原始碼恢復完全開源,且可用於任何目的。

預計在2019年10月發布的CockroachDB 19.2,是第一個應用BSL授權的版本,而在這個授權之下,根據OSI的開源定義,儘管原始碼仍然對外開發,但CockroachDB 19.2就已經不是開放原始碼的專案,要一直到三年後2022年10月,CockroachDB 19.2包括其間的修補程式碼,才都會轉為Apache 2.0。舊版本的CockroachDB不受新授權政策影響,19.1的其他小版本更新以及未來的修補程式,都仍為Apache 2.0授權。

熱門新聞

Advertisement