GPL-General Public License

  它是自由软件许可(Free Software Licence),保证最终使用者能够自由的引用,学习,拷贝,甚至修改软件。在理解这之前需要了解什么是copyleft

CopyLeft

  相比copyright,copyleft指向的是自由软件。【任何不受版权法保护的东西是不能赋予 copyleft特性的,也就不能适用copyleft协议】自由软件之于copyleft,相当于作品之于copyright。Free Soft中的Free的含义在于“自由”,而并非“免费”,自由是针对使用、复制、修改而言的,并不是以免费作为必要条件。自由软件基金(Free Software Foundation,简称FSF)的创始人斯托曼认为自由有四个判定标准:

    0.为任何目的运行程序的自由。

    1.为自己需要修改程序的自由。

    2.修改之后,在发布供其他人自由使用的自由。

    3.改良程序,向社会发布,供全社会受益的自由。

  回到copyleft,它的核心思想是:思想共享,源代码共享。copyleft作品和其后续基于其上的演绎作品或者引用copyleft作品的产品,必须使用与原作品 相似或者相同的授权协议--这就是copyleft的“传染性”,这种【横向】和【垂直】的【传染性】,保证了copyleft的运行。
明白了copyleft的核心思想之后,回到GPL,第一版的GPL同样是斯托曼编写。 理所当然的GPL成为第一个履行copyleft的协议。后期逐渐加入的有 Linux kernel,GNU Compiler Collection (GCC)等。
GPL协议最主要的几个原则:

  1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。

  2、GPL 大致就是一个Copyleft,的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。

  3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。

  4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

  GPL的发展

  从 1989 年发布第一个版本的 GPL v1 开始到今天, GPL 协议已经发布到第三 个版本了。与之相应的, LGPL 协议则在 1991 年发布了第一个版本——Library General Public License v2(软件库通用许可)。版本号定为 v2 是因为当时正值 GPLv2 发布,为了显示两者之间存在的互补关系。在 1999 年, Library General Public License 正是更名成现在使用的 GNU Lesser General Public License,并且发布 2.1 版本的协议文本。 随后在 2007 年则随着 GPL v3 发布了 LGPL v3。
  而 GFDL( GNU Free Document License,自由文档协议) 则在 1999 年首先以 草稿的方式发布,随后在 2000 年 3 月修改后以 1.1 为版本号正式发行。接着, 两年后的 12 月则更新到 1.2 版。之后,则在维基媒体基金会的要求下修改发布1.3 版,规定符合一定条件的 Wiki 网站,可以改用知识共享-署名-相同方式分享3.0 版( CC-BY-SA 3.0)许可协议。

  1.GPL 关键词:作品&源代码,自由传播、复制、修改,相容或相同协议,目前三个版本。

  2.LGPL 关键词:软件库,没有修改可以不遵循copyleft协议。

  3.GFDL 关键词:文档/文学作品,

GPL协议的更多相关文章

  1. GPL协议的MySQL数据库

    网络上多数朋友担心甲骨文会对MySQL软件采用收费模式,多数朋友也不清楚MySQL开源到底是什么模式,开源=免费嘛?是很多的疑问?MySQL是遵守双重协议的,一个是GPL授权协议,一个是商用授权协议( ...

  2. 关于GPL协议的理解(开源与商用、免费与收费的理解)

    编者:请特别注意看暗红色粗体标注的那几句话,总结下来有下面几点: 如果你用了我的 GPL软件,那么你的软件也必须要开源,否则就不能使用我的软件,你是否把你的软件商用和我没关系 Oracle 卖的不是软 ...

  3. GPL协议本身就是剥削,oracle维权玩的让人恶心

     我们先来看一下MySQL的版权问题.当前,MySQL采用双重授权(Dual Licensed),他们是GPL和MySQL AB制定的商业许可协议.如果你在一个遵循GPL的自由(开源)项目中使用MyS ...

  4. 为什么越来越少的开源项目使用 GPL 协议

    原文出处: opensource   译文出处:oschina/王练    前段时间,我在 RedMonk 上看到了一篇来自 Stephen O’Grady 的有趣推文,介绍了开源许可证目前的状态,以 ...

  5. GPL协议中国第一案尘埃落定,相关开源软件应如何风控?

    导读:2019年11月6日,数字天堂(北京)网络技术有限公司(以下简称 “数字天堂公司”)诉柚子(北京)科技有限公司.柚子(北京)移动技术有限公司(以下简称 “柚子公司”)侵犯计算机软件著作权纠纷一案 ...

  6. [转载]一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    本文转载自:http://blog.csdn.net/testcs_dn/article/details/38496107 开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区 ...

  7. 五种开源协议(GPL,LGPL,BSD,MIT,Apache)

    什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还 ...

  8. [转]五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)

    当Adobe.Microsoft.Sun等一系列巨头开始表现出对"开源"的青睐时,"开源"的时代即将到来!现今存在的开源协议很多,而经过Open Source ...

  9. 四大开源协议比较:BSD、Apache、GPL、LGPL (转)

    转自:http://www.lupaworld.com/portal.php?mod=view&aid=205552&page=all 本文参考文献:http://www.fsf.or ...

随机推荐

  1. dijkstra 优先队列最短路模板

    ;;*maxn];,):id(a),dist(b){}        ));        ;i<=n;i++)dist[i]=inf;        dist[st]=;        ;i= ...

  2. server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh

    宕机监控报警程序 一.   需求来源 宕机对运维人员来说,最痛苦了.怎样检測一台server是否还在正常执行,假设该server宕机,怎样在第一时间监測到并通知一线运维人员进行维护,最大化降低损失. ...

  3. CentOS安装常用软件

    下载第三方库rpmforge,找到合适自己版本的rpmforge下载,用以支持NTFS格式硬盘和MP3格式音频或其他 http://pkgs.repoforge.org/rpmforge-releas ...

  4. hadoop 配置文件注意问题

    一定要配置成hostname形式: 如伪分布:配成localhost:9000 完全分布:配成big1:9000

  5. springmvc+mybatis集成配置

    简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求.闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: <!-- spri ...

  6. BZOJ 3514: Codechef MARCH14 GERALD07加强版( LCT + 主席树 )

    从左到右加边, 假如+的边e形成环, 那么记下这个环上最早加入的边_e, 当且仅当询问区间的左端点> _e加入的时间, e对答案有贡献(脑补一下). 然后一开始是N个连通块, 假如有x条边有贡献 ...

  7. JavaScript之转义字符

    <html lang="en"> <head>   <meta charset="UTF-8">   <meta na ...

  8. 安卓里面JSON处理和JAVA SE里面的JSON包

    今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里 ...

  9. 【Howie玩docker】-命令行只显示-bash-4.1#

    灵雀云上面用docker建了个centOS的实例,首个免费,正好当云主机来玩. 但是,打开有个问题,命令行不显示当前用户和路径. 只显示: -bash-4.1# 简单,配置文件不全而已. 下面对其重新 ...

  10. fiddler--firefiox代理

    修改端口:修改后重启才能生效