开源许可协议:GPL、AGPL、LGPL这一家子该怎么选?

GPL许可协议
![]()
GPL许可协议,全称为GNU通用公共许可证(GNU General Public License),它是由自由软件基金会(Free Software Foundation)发布的一种许可协议。GPL是一种传染性的许可协议,它保证了所有开发者的权利,同时也要求在源代码的基础上发布软件的任何修改版本。
在GPL许可协议基础上又衍生出AGPL协议(Affero General Public License)和LGPL(Lesser General Public License)协议。目前GPL一族协议中最常用的有:GPL-2.0、GPL-3.0、AGPL-3.0、LGPL-2.1和LGPL-3.0。
与MIT、BSD、ISC等宽松的许可协议不同,GPL一族协议更注重保护开发者的权利,在专利、源码公开、相同许可证等方面有着较为严格的要求。
那么,这几个协议有何区别?各自又有什么样的应用场景?
有何区别
我们以表格的形式,从权利、条件、限制等11个核心要点,将 GPL-2.0、GPL-3.0、AGPL-3.0、LGPL-2.1和LGPL-3.0 协议做了横向对比,如下表。
|
许可协议 |
GPL-2.0 |
GPL-3.0 |
AGPL-3.0 |
LGPL-2.1 |
LGPL-3.0 |
|
专利 |
√ |
√ |
√ |
||
|
修改 |
√ |
√ |
√ |
√ |
√ |
|
分发 |
√ |
√ |
√ |
√ |
√ |
|
商用 |
√ |
√ |
√ |
√ |
√ |
|
私使 |
√ |
√ |
√ |
√ |
√ |
|
公开源码 |
√ |
√ |
√ |
√ |
√ |
|
变更记录 |
√ |
√ |
√ |
√ |
√ |
|
相同许可证 |
√ |
√ |
√ |
√1 |
√1 |
|
网络公开 |
√ |
||||
|
许可和版权声明 |
√ |
√ |
√ |
√ |
√ |
|
商标 |
上表相关要点说明如下:
- 1.专利:
√:该许可证提供了明确的专利权授予权力。
- 2.修改:
√:许可材料可以被修改。
- 3.分发:
√:许可材料可以分发。
- 4.商用:
√:许可的材料和衍生物可用于商业目的。
- 5.私用:
√:许可的材料可以私下使用和修改。
- 6.公开源码:
√:分发许可材料时,必须提供源代码。
- 7.变更记录:
√:对许可材料所做的更改必须记录在案。
- 8.相同许可证(库):
√:分发许可材料时,必须在同一许可下发布修改。在某些情况下,可以使用类似或相关的许可证。
√1:分发许可材料时,必须在同一许可下发布修改。在某些情况下,可能会使用类似或相关的许可,或者该条件可能不适用于将许可材料用作库的作品。
- 9.网络公开:
√:通过网络与许可材料进行交互的用户被授予接收源代码副本的权利。
- 10.许可和版权声明:
√:许可和版权声明的副本必须包含在许可材料中。
- 11.商标:
×:该许可证明确声明它不授予商标权,即使没有此类声明的许可证也可能不授予任何隐含的商标权。
应用场景
GPL一族许可协议是强调著作权的许可协议,并且在公开源码方面有各自的要求。总体来说:
- GPL 适用于通过网络服务但不希望公开源码的场景。
- AGPL 更适合于通过网络服务并且公开源码的场景。
- LGPL 更适合类库的开发应用,通过引用的LGPL库的方式而不希望公开整个应用程序源码。
都有哪些流行项目在使用
- GPL : Jellyfin 、 GitBook 等。
- AGPL :RustDesk 、MinIO、drawDB 等。
- LGPL:p5.js 、 PHPMailer 等。
最后推荐下个人网站:Awesome Top - 热门开源项目推荐,如果访问GitHub时遇到网络问题,不妨去看一看!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)