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. JSP简单练习-获取表单数据

    在JSP中,server端程序与client交互最经常使用的方法就是採用表单提交数据.表单提交的方法主要有两种,一种是get方法.还有一种是post方法.两者最大的差别:使用get方法提交的数据会显示 ...

  2. 微型 ORM 的第二篇 DapperLambda性能测试[Dapper比较篇]

    由于这周比较忙,所以本来想做的性能测试,一直没时间,想想还是今天给补上吧 由于很多人都担心性能问题,封装之后跟Dapper的性能差距是多少,今天我给出我的测试方法,仅供参考. 创建IDbConnect ...

  3. socket select模型

    由于socket recv()方法是堵塞式的,当多个客户端连接服务器时,其中一个socket的recv调用时,会产生堵塞,使其他连接不能继续. 如果想改变这种一直等下去的焦急状态,可以多线程来实现(不 ...

  4. TinyFox 部署在CentOS7 中测试使用

    一:TinyFox介绍 TinyFox 是一款支持OWIN标准的WEB应用的高性能的HTTP服务器,是Jexus Web Server的"姊妹篇".TinyFox本身的功能是htm ...

  5. 第一个Hadoop程序——Hello Hadoop

    本人原创,转载请注明出处:http://blog.csdn.net/panjunbiao/article/details/12773163 下载Hadoop程序包,下载地址:http://hadoop ...

  6. zoj 2589 Matrix Searching 二维线段树

    题目链接 给一个n*n的矩阵, 给q个查询, 每次给出x1, y1, x2, y2, 求这个矩阵中的最小值. 代码基本上和上一题相同... #include<bits/stdc++.h> ...

  7. NodeJS 从0开始

    查看Node 基本配置$ npm config ls -l $npm help install将展开install的help文档 初始化目录 npm init 根据提示完成 将生成package.js ...

  8. .NET DataGrid 导出Excel 无分页

    #region 导出Excel // protected void BtnExcelClick(object sender, EventArgs e) { ToExcel(); } public vo ...

  9. VS Code - Debugger for Chrome

    VS Code - Debugger for Chrome调试JavaScript的两种方式   VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于 ...

  10. HDU 5768 Lucky7(CRT+容斥原理)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5768 [题目大意] 求出一个区间内7的倍数中,对于每个ai取模不等于bi的数的个数. [题解] 首 ...