timzaak / blog

8 stars 1 forks source link

开源项目的商业化-协议选择 #97

Closed timzaak closed 1 year ago

timzaak commented 1 year ago

BSL 1.1与 CLA

BSL 1.1(Business Source License 1.1)来自 MariaDB 项目,随后被Zerotier、Akka 等著名的开源项目采用。 BSL 1.1 非商用免费,商用收费,3年后(可自定义)协议自动转换为 ApacheV2,可添加补充条款,例如 MariaDB 是一个项目两个实例以下免费,Akka 是关于 Playframework 项目使用 Akka 二进制的豁免。Zerotier 进一步明确了项目不适用范围。

BSL 协议涉及商用问题,所以 pull request 所有权归属及其后续盈利分成就成了问题。做的极端点,就是不开放 PR 权限,要么就是祭出授权大招:CLA(CONTRIBUTOR LICENSE AGREEMENTS),开源项目一般使用Apache CLA,补充一下法律争议归属地即可,Google 的会要求更多、严谨。

参考:

GPL与商业授权

一个项目可存在多个授权协议, MiniGUI采用 GPLv3+商业授权混合模式。具体细节未知,但至少 MiniGUI 已经成功运行了20多年,并带来丰厚的营收。 参考:

SSPL

Server Side Public License, MongoDB 等用, 主要是用来限制云厂商商业使用。

timzaak commented 1 year ago

BSL 1.1 项目开源设施使用情况

Dragonfly

  1. 官方文档自建。部署在 vercel,可免费
  2. docker 镜像, AWS
  3. 二进制发布, github release
  4. cicd, circle

    Akka

  5. cicd, github actions
  6. jars,sonatype
  7. 官网,自建

    cockroach

  8. 官网, netlifyglobalcdn
  9. 二进制发布, 自己的官网
  10. docker 镜像,docker hub,verified publisher

Sentry

  1. docker 镜像, docker hub
  2. 官网, 自建
  3. 二进制包, github release
timzaak commented 1 year ago

目前看,比较接地气的方案是走 BSL1.1 + CLA,后续觉的做不下去了,自动退回 Apache 2.0 协议。至于GPL,一旦用了,想改都改不了。