• 欢迎访问3y4.net
  • 请使用Edge、Chrome或Firefox测试显示内容。

简单理解开源协议:GPL

其它 wes 5个月前 (07-13) 195次浏览

        GPL协议大部分内容都比较容易理解,这里就说一下里面可能让人容易困惑的地方说下个人的理解:修改使用GPL协议的开源软件后重新发布是否必须开源?而准确权威的解释请以官方文档为准。

        GPL协议官方原版文档链接:The GNU General Public License v3.0 – GNU Project – Free Software Foundation

https://www.gnu.org/licenses/gpl-3.0.en.html

        GPL协议是开源软件中使用最多的协议,简单的理解就是基于使用该协议的开源软件修改或开发出来的软件也必须要开源,即也要遵循GPL协议,就是经常说的传染性。举个简单例子:某开源软件A使用GPL协议其代码约有1000行,基于开源软件A开发出软件B全部源代码约10000行,尽管软件A代码仅占软件B全部代码的10%,但由于软件A是使用GPL协议发布的,所以软件B也必须使用GPL协议开源发布。

使用GPL协议的源代码开发的软件必须要开源吗?

        使用GPL协议的开源软件,只要修改源码后把程序分享发布出去的就必须要开源(如果是自己修改加强完善了仅自己使用而没做任何发布分享那可以不用开源,若愿意开源且被采纳了那是对开源软件的贡献自己的名字会被写贡献者名单),也就是说发布出来的二进制可执行文件程序的功能与同时开源出来的源码任何人编译出来的程序的功能应该是一致的。
        再说,自己修改的源码自己觉得非常完美且功能强大,若开源出来也不一定会被项目采用,因为自己觉得非常完美无懈可击了但实际上可能还存在不少问题或者是没必要或是重复的功能又或是简单的问题复杂化了,不管怎么样,只要遵守GPL协议大家可以互相交流学习一起进步。  
        事实上,对于一些非常优秀的开源软件,比如Linux、Android、PostgreSQL、MySQL、Qt、Apache、Nginx等等数都数不完的优秀的开源软件,如果提交自己修改的代码被采纳那确实是自己的荣幸,也体现出了自己的创新能力与专业水准。


转载请注明 --> 原文链接
喜欢 (1)