`
solomongg
  • 浏览: 53080 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

GPL 与 LGPL 扫盲

 
阅读更多

首先,开源并不代表放弃自身的权力,相反,开源软件之所以存在,正是它非常注重这种权力,并且把这种权力赋予了软件的所有使用者。小心的选择许可证 是开发开 源软件的第一步,也是每一个开源软件作者所必须要了解的,这代表了你对你的软件的最基本态度。很多的时候,这背后也隐藏着某种商业策略,特别是有商业公司 支持的项目。
比如Android为什么是Apache 2.0而不是LGPL/GPL发布?为什么Linux是以GPL发布?其中绝对不是简简单单的看哪个许可证用得多就选择哪个,而是深思熟虑的结果。千万不 要小看这个选择,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性。一个错误的许可证选择可能会直接导致整个项目的失 败,XFree86就是一个好例子,所以,选择许可证是一件小心、谨慎的事情。
各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的。
GPL
这里不想再解释长篇的GPL译文 和更长的FAQ 。 简单说,GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)的时候,整个项目也必须是GPL的,即主程 序和静态链接的库(Linux的.a和Windows的.lib)必须是GPL的,动态链接库(Linux的.so,Windows的.dll)必须是比 GPL兼容的。所谓GPL兼容,也就是GPL软件中可以使用的库,这些许可证必须比GPL弱(如LGPL,BSD),而不能是某个商业许可证。这里有一个 兼容列表 List of FSF approved software licenses 。正因如此,GPL是带有很强的传染性,只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧,并且你的项目中也不能有任何和GPL不兼容的库。
LGPL
GPL 带有很强的传染性,那么如果一个库使用GPL发布,那么使用这个库的所有软件也必须使用GPL发布,这对不想开放源代码的商业软件来讲是致命的打击——你 可以不使用其他的库,但最基本的libc是无论如何绕不开的,如果libc是以GPL发布,就相当于所有软件必须以GPL发布了。所 以,LGPL(Lesser GPL)诞生了。LGPL定义为,在以LGPL发布的库的基础上开发新的库的时候,新的库必须以LGPL发布,但是如果仅仅是动态链接,那么则不受任何限 制。这样商业软件就可以随意的使用LGPL的库了。因此,LGPL也具有传染性,但限制在在其基础上开发的库上,而并不限制使用它的程序本身——它的传染 性远小于GPL。

BSD、Apache 2.0

相对GPL/LGPL的开放源代 码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache 2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache 2.0提及的方式稍有不同,具体可以参考协议的详细内容。它们是GPL兼容的。
了解了几种常用许可证的异同,再来看许可证的选择。


Android 使用宽松的Apache 2.0发布,因为Google作为一个商业公司,并不想失去商业软件的支持,它希望团结一切可以团结的力量加入的Android的开发中来,壮大自己的阵 营,使用Apache 2.0就无可厚非了。而Google本身,并没有丧失对Android的控制权,不会担心另外一个公司拿走了Android的代码开发出一个闭源 Android的对手。因为,只要Android不断的出新版,社区不停的跟进,并且不停的修改API,其他基于Android开发的公司不得不把自己的 Patch提回到主干上,否则,必然将耗费大量人力物力在维护自己的Patch上(钱这方面你斗得过Google?),得不偿失。而且,闭源之后,与整个 社区为敌,作为一个定位软件平台的项目,会流失大量应用软件开发者,以小博大,任何一个商业公司都不会干这种胜算不高的蠢事。


在 看以 GPL发布的Linux为什么比以BSD发布的FreeBSD成功。其实正是因为GPL的传染性。当一个开发人员在Linux基础上开发一个新功能之后, 不得不以GPL开放源代码,贡献回Linux,这样Linux本身才能越来也越壮大而且留住了相当的开发人员,形成了一个 优秀软件->很多使用者和贡献者->贡献->更优秀的软件->更多的使用者和贡献者... 的良性循环。
正如每一个成功 的男人背后都有一个女人,每一个成功的开源软件背后都有一个符合它策略的开源许可证。许可证明确的版权划分,明确的版权划分为软件发展提供 了一个良好的环境。正是因为老外重视版权,天天为版权争吵,才会有一个良好的商业软件和自由软件大环境。相对的,漠视版权的中国无论商业还是开源软件,才 会沦落到毫无创新能力,只能给外国打打下手,作点边角外包的境地。

分享到:
评论

相关推荐

    开源协议比较(BSD,Apache,GPL,LGPL,MIT)

    与GPL不同,LGPL允许软件的使用者将LGPL许可的库链接到非GPL许可的程序中,而不强制整个程序必须遵循GPL许可证。这意味着使用LGPL许可库的应用程序可以选择使用其他许可证,只要不修改库本身即可。 #### MIT许可证 ...

    开源协议BSD, GPL, LGPL, MIT等比较

    开源协议比较 BSD, GPL, LGPL, MIT 等 开源协议是开源软件开发和使用中非常重要的一部分,选择合适的开源协议可以保护作者的权益同时也可以促进开源软件的发展。常见的开源协议有 BSD, GPL, LGPL, MIT 等,这些协议...

    BSD-APACHE-GPL-LGPL-MIT.rar_open

    五种开源协议的比较(BSD,APACHE,GPL,LGPL,MIT)–整理Comparison of five open source license (BSD, APACHE, GPL, LGPL, MIT)- finishing

    BSD-APACHE-GPL-LGPL-MIT.rar_mit gpl

    在本文中,我们将深入探讨五种常见的开源协议:BSD、Apache、GPL、LGPL以及MIT,并分析它们之间的差异。 首先,BSD(Berkeley Software Distribution)协议源于加州大学伯克利分校,其主要特点是宽松的授权条件。它...

    五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍

    本文将深入探讨五种主要的开源协议:GPL、LGPL、BSD、MIT和Apache。 首先,GPL(GNU General Public License)是最具影响力的开源协议之一,它确保了软件的“copyleft”属性,即如果软件的任何部分被用于其他项目,...

    Fortran自由函数集合(Fortran free function collection)(不含GPL/LGPL代码)

    Fortran自由函数集合(Fortran free function collection)(不含GPL/LGPL代码)

    五种常见软件开源协议介绍-GPL、LGPL、BSD、Apache、MIT.pdf

    五种常见软件开源协议介绍-GPL、LGPL、BSD、Apache、MIT.pdf

    重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT).pdf

    在众多开源协议中,有五种特别重要且被广泛使用的协议:BSD、Apache、GPL、LGPL和MIT。这五种协议各有其特点和适用范围,下面我将对它们逐一进行详细介绍。 首先,BSD协议(Berkeley Software Distribution License...

    GPL 2.0协议

    GPL 2.0协议带格式文本,估计做计算机的是绕不开该协议了,可以下载下来研究研究。

    jackson-core-1gpl、jackson-mapper-lgpl-1.9.13jar包

    总的来说,"jackson-core-1gpl、jackson-mapper-lgpl-1.9.13.jar包"为Java开发提供了强大的JSON处理能力,遵循LGPL协议,允许自由使用和修改。这两个jar包的结合使用,可以满足大部分JSON序列化和反序列化的需求,...

    各种开源协议简析 GPL、BSD、MIT、Mozilla、Apache、LGPL1

    本文将分析几种常见的开源协议,包括GPL、BSD、MIT、Mozilla(MPL)、Apache 2.0和LGPL,帮助开发者理解它们的特点和适用场景。 首先,BSD开源协议赋予了使用者极高的自由度。它允许使用者自由地使用、修改源代码,...

    HDP-GPL-3.1.0.0-centos7-gpl.tar.gz

    2. **下载与解压**:从官方渠道获取HDP-GPL-3.1.0.0-centos7-gpl.tar.gz文件,然后在Linux终端使用`tar -zxvf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz`命令进行解压,解压后会得到一系列Ambari相关的文件和目录。...

    HDP-GPL-3.1.4.0-centos7-gpl.tar.gz

    标题 "HDP-GPL-3.1.4.0-centos7-gpl.tar.gz" 提供的信息表明,这是一个与HDP(Hortonworks Data Platform)相关的开源版本,版本号为3.1.4.0,是为CentOS 7操作系统设计的。HDP是一个基于Apache Hadoop的全面数据平台...

    Pick_think3_gpl_thinkdesign开发_think3gpl宏_Pick_think3_gpl_源码

    thinkdesign GPL 宏写的实例 供对think3中gpl有兴趣的做参考。

    ffmpeg share版-ffmpeg-n4.4-latest-win64-lgpl-shared-4.4.zip

    在这个“ffmpeg-n4.4-latest-win64-lgpl-shared-4.4.zip”压缩包中,包含的是 FFmpeg 的4.4版本,专为64位的Windows系统设计,并且是“共享”(shared)版本,意味着库是动态链接的,可以与其他程序共用。...

    常用开源协议文本

    与GPL相比,LGPL允许非开源项目链接到开源库,只要不修改库本身,就可以保持非开源状态。这意味着开发者的应用程序可以与LGPL库一起分发,而不需要公开源代码,除非修改了LGPL库。 2. GPL (GNU General Public ...

    ext-7.0.0-gpl.zip

    描述中的同样信息"ext-7.0.0-gpl.zip"没有提供额外的细节,但我们可以假设它与标题一致,是关于一个特定版本(7.0.0)的扩展或插件的归档文件。 标签"ext"表明这是一个扩展程序,可能用于某种软件平台,如Web开发...

    linux系统教程课后习题答案借鉴.pdf

    GNU软件遵循GNU通用公共许可证(GPL)或Lesser GPL(LGPL)。GPL保证软件的自由性,要求软件以源代码形式发布,任何用户都可以复制、发布或修改,并要求如果软件使用了GPL保护的部分,整个软件也必须遵循GPL。LGPL则...

    HDP-GPL-3.0.1.0-centos7-gpl.tar.gz 用于部署HDP大数据平台,处理和分析各种类型的数据

    该软件包主要用于在CentOS 7操作...通过安装和配置HDP-GPL-3.0.1.0-centos7-gpl.tar.gz,您可以搭建一个功能强大的大数据平台,用于处理和分析各种类型的数据。它可以帮助您实现数据的存储、处理、查询和可视化等任务。

    GPL协议中文版 PDF格式

    中文GPL文档 可以参考下 平时用的软件有没触犯协议 GPL协议中文版

Global site tag (gtag.js) - Google Analytics