源码解读|GPL协议认识

源码解读|GPL协议认识
文章图片

图片链接:https://www.runoob.com/w3cnote/open-source-license.html
GPL协议 1、GPL(GNU General Public License),GNU通用公共许可协议。GNU官方的定义:GNU is Not Unix
2、GPL 3.0协议第4条、第5条的规定,只要后续版本中有使用先前开源版本中的源代码,并且先前版本使用了GPL 3.0协议,则后续版本也必然受GPL 3.0协议的约束。
3、GPL 3.0协议并未限制用户进行商用,只是必须遵守开源的规定。GPL的精髓就是开源,和是否商用,是否收费完全没有关系。
4、GPL 其实从字面上就可以理解为公共许可证,也就是说遵循GPL的软件是公共的,其实不存在什么版权问题,或者说公众都有版权,GPL提出了和版权 (copyright)完全相反的概念(copyleft)。
GPL 3.0协议的法律效力 GPL 3.0协议的内容具备合同特征,是一种民事法律行为。其二, GPL 3.0协议具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国《合同法》调整的范围。
根据GPL 3.0协议第8条“终止授权”的约定,授权人许可用户在遵守许可证规定的前提下行使某些权利,但用户必须承担相应的义务。若用户违反GPL 3.0协议的使用条件来复制、修改或传播受保护的作品,其通过GPL 3.0协议获得的授权将会自动终止。一旦用户违反了使用的前提条件,将导致GPL3.0协议在授权人与用户之间自动解除,用户基于协议获得的许可即时终止。用户实施的复制、修改、发布等行为,因失去权利来源而构成侵权。
违反GPL的案件过程 被告使用了附带GPL 3.0协议的开源代码,却拒不履行GPL 3.0协议规定的使用条件,根据GPL 3.0协议第8条自动终止授权的约定及《民法总则》第一百五十八条的规定,被告通过该协议获得的授权已因违反协议而自动终止,被告因失去权利来源而构成侵权。
原告是否有权提起本案诉讼 1、首先,现有证据可以证明原告系 “开源软件项目” 的著作权人。
2、其次,原告提起本案诉讼无需贡献者的同意或授权。(如果开源项目的起诉维权需经全体贡献者一致同意或授权,实则导致维权行为无从提起)
3、最后,GPL 3.0协议仅限制授权人不得向用户主张任何专利权,而并未限制授权人对违反许可协议的用户主张著作权。
判定证据示例 送检的“VirtualApp”源代码与“点心桌面”软件安装包 反编译 得到的源代码共有421个可比代码文件,其中有27个可比代码具有高度相似性,有78个可比代码具有一般相似性,有308个可比代码具有实质相似性,有8个可比代码不具有相似性。
另该鉴定意见的分析说明中载明:双方可比代码所在的目录结构相似,且双方对应目录中同时有“lody”目录,而“lody”为原告代码的开发者,在原告代码有多处的注释都表明(原告代码中均有注释“@authorLody”),而这种目录相似情况和上述代码相似程度在软件的独立开发过程中是不可能存在的。
被告应承担的法律责任 1、被告立即停止侵害原"原告方开源项目"著作权的行为,被告方"项目软件"立即停止提供下载、安装和运营服务。
2、法院认为,开源软件大多都是免费的,但授权人付出的开发成本是必然存在的,按照侵权获利来承担赔偿责任更为公平合理,因此法院酌情确定赔偿数额为50万元。
违法了协议怎么办? 在 GPLv2,如果你违反任何许可证的要求,你将自动永久失去许可证权利。恢复权利的唯一办法是请求版权持有者。虽然对违规的有力防御有其价值,但是这个政策在有人不经意犯错时就可能导致很多麻烦。请求所有版权持有者正式恢复许可证权利会是代价昂贵的负担:一个典型的 GNU/Linux 发行版会是数千人工作的集合。
GPLv3 为悔过自新提供了缓期执行:如果你违反了许可证,一旦你停止违反,你就立即重新获得许可证权利,除非有版权所有者在 60 天内和你联系。在你收到通知之后,如果你是初犯并且在 30 天内修正了错误,那么你可以恢复权利。否则,你要和与你联系的版权所有者具体问题具体解决,完成之后再恢复权利。
国内开源环境现状 1、中国电子书厂商Oynx拒绝开源其基于Linux 内核修改的设备源码,这一做法违反了Linux的GPL协议,在Reddit社区引发了开源软件如何在中国维权的大讨论。
2、凭心而论,阿里、腾讯、百度等大厂近些年来在开源方面贡献都很大,Oynx拒绝开放源码的行为可能纯属是个例,即使我们开源了飞浆、RocketMQ等多个优秀的开源软件,也无法对冲不遵守开源规则所带来的恶劣影响。
3、不过还是有很多商业软件使用 FFMPEG 的代码但并未遵循 LGPL/GPL 许可证的要求,因此FFMPEG的组织方使用“耻辱柱(Hall of Shame)”来公示那些违反 GPL 许可证使用FFMPEG代码的其公司,其中有很大一部分是中国的知名企业,为此整个业界也都欣起了轩然大波。
4、开源也会封闭,业界开始反思
作为全球最大的开源社区网站,GitHub在去年年中,开始对来自被制裁地区的用户加以限制了,分别有来自克里米亚和伊朗的GitHub用户发现自己的账号遭到了网站官方的限制。
由于以上原因,我国IT界对于开源软件的使用有了不同的声音,清华大学的刘利副教授表示“我国对国外开源基础软件的依赖,使一些国家可随时通过隐藏最新技术或版权,限制甚至阻碍我国科技发展。”
在接受《中国科学报》采访时,他再次表示,“长期使用国外免费开源基础软件,很大程度上制约了我国自主研发的积极性和创新能力,拉大了我国在相关领域与其他国家的差距,这无异于助长了对我国的‘科技侵略’!”。
【源码解读|GPL协议认识】从实际情况上看,盲目的抄袭当然是有害的,但是借鉴开源软件的思路和想法,对于我国乃至整个IT产业来说都非常重要。如今中国 GitHub 开发者数量年增长 37%,并拟在中国设立分公司。在如今IT技术发展日新月异,拥抱开源、互通共享已逐渐成为业界的共识,在这种情况下,获取开源技术社区的支持是无比重要,不过这种支持是相对的,同时要求我们在使用开源时,尊重开源规则。
常用的开源库

软件库 协议
qt LGPL 和商业协议
FFmpeg GPL开关协议控制,可选择性编译
OpenCV Apache 2.0协议,2020 年技术委员会的会议记录显示,其中一项议程提到计划将其开源许可协议从 BSD 变更为 Apache 2.0。
cJson MIT协议
SQLite Public Domain协议,这是最爽一种,可以放心大胆地用
QCustomPlot LGPL 和商业协议
Qwt LGPL协议
Log4Qt Apache 2.0
MySQL GPL和一种商业许可(称为双重许可)

    推荐阅读