Linux misc · 其他

淺談 Server Side Public License

繼之前 Redis Labs 將部份 Redis 模組的授權條款從 AGPL 3.0 改成 Apache 2.0 + “Commons Clause” 新聞後, 著名 NoSQL 資料庫 – MongoDB 也宣佈將 Database Server and Tools 的授權條款從 AGPL 3.0 改成 Server Side Public License

[1] https://www.mongodb.com/licensing/server-side-public-license


1. 什麼是 MongoDB

文件導向的 NoSQL 資料庫 [2], 其高效能且具備彈性的資料模型讓許多雲端服務商提供 MongoDB 相關的雲端服務.

[2] https://en.wikipedia.org/wiki/MongoDB


2. 什麼是 SSPL? 和 AGPL 的差異為何?

SSPL (Server Side Public License) 為 MongoDB 基於 GPLv3 上修改並提出的軟體授權條款.
MongoDB 認為 AGPL “Remote Network Interaction” 條款敘述不夠明確, 容易造成混淆. 加上許多雲端服務商一直在挑戰 AGPL 的底線, 大量使用 MongoDB 來進行營利行為卻不遵守 AGPL. 所以才提出明確定義的 SSPL.
SSPL 和 AGPL 的差異主要是 section 13 的宣告 [3]

 

13. Offering the Program as a Service.

If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.

“Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.

[3] https://webassets.mongodb.com/_com_assets/legal/SSPL-compared-to-AGPL.pdf?_ga=2.154312753.884991208.1540977980-516879858.1540198613

SSPL 明確描述若公司使用該程式並提供公開服務時, 其相關服務程式, 皆需改以 SSPL 授權且公開原始碼. 其中包含下列項目:
  • management software
  • user interfaces
  • application program interfaces
  • automation software
  • monitoring software
  • backup software
  • storage software
  • hosting software
  • all such that a user could run an instance of the service using the Service Source Code you make available
由上述可知影響層面已遠遠超出 “衍生作品” 的範圍.
由於 open source license 需要經過 OSI (Open Source Initiative) 審核, 目前 MongoDB 已將 SSPL 提交給 OSI 進行審核流程 [4].

[4]  https://opensource.org/approval


3. MongoDB 採用 SSPL 原由

MongoDB 表示許多組織 , 尤其跨國雲端服務商開始在測試 AGPL 底線 [5]. MongoDB 認為比起浪費資源在法律訴訟上, 他們更想把資源花在更好的產品開發上.

他們有兩種方法可以達到目標.
1. 改用 closed source license
MongoDB 後來不考慮此方法, 主要的原因是相信 open source 機制能帶來更有價值, 強固且安全的軟體. 此外也能透過開源來建立的強大社群以及更好的產品.
2. 使用 open source license
MongoDB 選用此方法. MongoDB 試圖使用 open source license 來處理此議題, 也就是 SSPL – 基於 GPLv3 上增加額外條款來明確指出只要提供 MongoDB 公開服務就需要公開原始碼.

4. SSPL 和 Common Clause License 的差異

Common Clause License 明令禁止商業販售, 此聲明違反 open source 定義, 故 Common Clause License 不是 open source license. MongoDB 自述 SSPL 只是明確定義若使用程式來提供公開服務, 所需要遵守的事情, 此舉並沒有違反 open source 原則.
SSPL 尚在 OSI 審核中, 是否能符合 open source license, 則還需持續關注.

5. 修改影響範圍

若內部使用, 則不受影響. MongoDB 主要針對提供公開提供 MongoDB 服務這個行為.

  • MongoDB Database Server and Tools 所有在 2018/10/16 之前釋出之版本, 皆衍用之前 AGPL v3. (不可徹回性)
  • MongoDB Database Server and Tools 所有在 2018/10/16 之後釋出之版本, 皆使用 SSPL. (包含修補之前版本的 patch)

[5] https://www.mongodb.com/community/licensing

此外, MongoDB 也提供 Commercial licenses

6. 心得:

近年來越來越多方法來反制雲端服務商只使用 open source 卻不回饋 community 的行為, MongoDB 此舉讓程式碼感染性更甚 GPL. 雖說 MongoDB 表示是為了讓更多公司加入社群開發. 但有其他聲音表示也許 MongoDB 是為了銷售 MongoDB Commercial licenses.
個人覺得最有趣的事情是, 若 MongoDB service 架設在 Linux 上, 那根據 SSPL 的定義 –  Linux kernel 是不是要將授權一併改成 SSPL.

發表迴響