【CSDN 编者按】白嫖有罪!共享不是拿来主义,请尊重产权!
每个开源项目都会有自己的一个开源协议,例如 Apache、MIT、BSD、GPL 等等,可以说是对于该项目开发者、使用者甚至是商业化受益者的一种约束。不过,开源项目的开源协议也不是一条路走到黑的,不少著名的项目都曾经更换过开源协议。很大程度上是因为一个原因——云服务商白嫖,拿来别人辛苦开发的东西去做自己的收费产品,却并不进行反馈,这种『拿来主义』令很多开源项目团队表示不满。Elatic 这次更换协议的发声,不是第一个,也肯定不是最后一个。随着开源的普及和发展,未来此类事件会越来越多,也希望更多人能够从使用者、支持者,成为开源的贡献者。当然,尤其是云服务公司,总不能当貔貅吧~
日前 Elastic 公司宣布,将对旗下 Elasticsearch 和 Kibana 进行开源许可修改,从 Apache 2.0 许可的源代码移到服务器端公共许可(SSPL)和 Elastic许可的双重许可下,使用户可以选择要应用的许可。该公司市值 140 多亿美元。根据官方信息,从 7.11 版本开始,两个产品的所有维护分支,默认发行版将继续使用 Elastic 协议。目前,两个项目的协议分别更新于 2018 年和 2019 年
为什开源项目要改协议?
官方表示,为了保证社区和用户能够自由开放地访问、使用、修改和分发这两个产品和源码。重点来了:它还通过限制云服务提供商在不共享其修改内容和服务管理层的源代码的情况下限制其将我们的产品作为服务提供,从而保护了我们在开发免费和公开分发的产品方面的持续投资。毕竟谁的钱也不是天上掉下来的,云服务商直接白嫖,云服务直接装上作为自己的产品打包赚钱,没有支持和回馈,这显然不合情理了。Elastic 表示,同阿里巴巴和腾讯建立了合作伙伴关系,两个产品不受影响,微软、谷歌、阿里和腾讯甚至是 AWS 的 Elastic Cloud 也可以正常使用。不过,Elastic 我们与 Amazon Elasticsearch Service 上的 AWS 没有商业关系。不积极支持该服务,也不再希望我们对软件的投资直接受益于该服务。为了透明起见,我们还在与 AWS 进行持续诉讼。
此次更换协议对于使用者有什么影响?
改开源协议,还有谁?
3.1 Redis
2018 年 8 月,Redis Lab 表示,Redis 开源许可依然是 BSD,但是模块许可协议修改为 Apache 2.0 并附带 Commons Clause。2019 年,Redis Labs 决定删除 Commons Clause,更换成新的许可 RSAL,Redis 表示该协议不针对开发人员,仅仅是为了自己对于产品的维护,防止云服务商打包产品进行垄断牟利。2018 年 10 月,MongoDB 宣布更改开源协议,将从 GNU AGPLv3 更改为 SSPL。此举遭到了红帽等组织的弃用,因为他们认为 SSPL 不是真的开源,当然,MongoDB 也不否认,毕竟自己的产品一直被云服务商白嫖甚至是公然售卖,搁谁都受不了了。2020 年 7 月,OpenCV OpenCV 官方宣布,将开源协议从 BSD 变更为 Apache 2.0。目的是针对其中的“专利”相关进行说明。尽管代码本身免费,如果使用 BSD 许可的代码,当中包含的专利可能涉及到一系列的复杂问题。目前,OpenCV 4.5.0 及更高版本使用 Apache2.0 协议,而 4.4.0 以下版本采用了 BSD 协议。2019 年,Google 表示将不会将旗下的开源项目 Knative 捐给 CNCF,毕竟自己造出了 K8S,眼睁睁看着云服务商吃肉而自己连口汤都不喝不到,所以就决定利用自己的发明者的优势和云服务商竞争一下到底谁该吃这块肉。当然,Google 此举也遭到了一些开源项目创建者的反对。
那些神奇的协议
开源协议,规定开发者和使用者对于项目的修改和使用、分发等一系列行为。了解开源项目的朋友们可能对 Apahce、MIT、GPL 之类的开源协议再熟悉不过了,这里搁置不表,有兴趣的朋友可以直接去访问开源协议的官网去了解。GitHub 当中默认能够直接选择的是哪些协议呢?Apache License 2.0
GNU General Public License v3.0
MIT License
BSD 2-Clause "Simplified" License
BSD 3-Clause "New" or "Revised" License
Boost Software License 1.0
Creative Commons Zero v1.0 Universal
Eclipse Public License 2.0
GNU Affero General Public License v3.0
GNU General Public License v2.0
GNU Lesser General Public License v2.1
Mozilla Public License 2.0
The Unlicense
如果使用其他协议,只要自己建立一个 License.txt 声明即可。
除了这些之外,通常我们使用的开源协议是通过开源促进会(OSI,Open Source Initiative)批准的开源协议。去年 2 月,OSI 首次通过了来自中国的木兰开源许可证 v2 版本(MulanPSL-2.0),使其正式成为一个国际化开源许可证。SSPL 是由 MongoDB 最初创建的可提供源代码的许可证,旨在体现开放源码理想的许可证,允许自由和不受限制地使用,修改和重新分发。其简单要求是:如果您以服务给他人,您还必须根据 SSPL 公开发布任何修改以及管理层的源代码。SSPL 是基于 GPLv3 的 copyleft 许可证。并没有经过 OSI 批准,因此官方还特意声明:『为了避免混淆,我们暂时不将两个产品称为开源,而使用“免费和开放” 进行描述』这里还有两个奇奇怪怪的协议。WTFPL 和 DBAD 协议,我知道一说这个你们就来精神了。WTFPL,全称 Do What The F*ck You Want To Public License 就是你 ** 想用它做点啥就做点啥吧。目前也是通过了 FSF 和 GPL 许可的,当然了这个存在一定的争议,有些人表示这个权限给的太散漫了。不过,既然作者同意了,那就随他去吧。另外一个神奇的协议叫做 DBAD,全称 Don’t be a dick。该协议的最神奇之处是,他是要求开发者的,协议里面还对 dick 进行了定义,意思是可别整幺蛾子了。开源项目这么多,你喜欢哪一个?你的开源项目用的什么协议?欢迎评论留言。参考资料:
https://www.elastic.co/cn/blog/licensing-changehttps://www.elastic.co/cn/pricing/faq/licensinghttps://dbad-license.org/
程序员如何避免陷入“内卷”、选择什么技术最有前景,中国开发者现状与技术趋势究竟是什么样?快来参与「2020 中国开发者大调查」,更有丰富奖品送不停!
☞腾讯、火绒回应“QQ 读取浏览器历史记录”;字节跳动起诉百度获赔 40 元;Redis 6.0.10 发布 | 极客头条
☞GitHub 撤销解雇犹太员工决定并公开致歉,涉事 HR 辞职
☞Java 已老矣,生态却依旧!
☞小小的 API 如何创造出 3.5 亿美元的价值?