软件开源协议与QT的开源协议介绍

一.常见的六种开源协议

1.BSD协议

BSD协议全称为“Berkely Software Distribution”,中文译为“伯克利软件发行版”。其最早用于伯克利UNIX操作系统上的开源贡献。

主要特点:

允许修改源码

允许源码再发布

允许商业软件发布和销售

约束:

如果再次发布的产品中包含源代码,需要在源代码中必须带有原来代码中的BSD协议。

如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 对商业比较友好,很多公司在选用开源产品的时候都首选 BSD 协议,因为可以完全控制这些第三方的代码,甚至在必要的时候可以修改或者二次开发。

2.Apache Licence 2.0

apache是一个有着全球影响力的开源组织,其推行的apache licence 2.0 与BSD十分类似,允许使用方进行二次开发和商用,但必须遵守以下约束:

需要给代码的用户一份Apache Licence

如果你修改了代码,需要在被修改的文件中说明。

在延伸的代码中(修改和包含源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

如果再次发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

3.GPL协议

GPL协议全称为“GNU General Public License”,中文名称为“GNU通用公共许可证”,该协议与前面提及的两项协议存在较大区别,主要是协议具有强制开源性,不利于商业化使用,主要约束有:

(1)始终保持源码开放

无论是面向开发人员还是非开发人员,都需要确保二次开发后的产品整个源码可见;无论是以何种介质方式提供,即便是提供二进制可执行代码也必须附上产品源码。

(2)不要求版权和署名

只要满足第一个条件,你无需在源码或在声明中备注前述开源作者等相关信息,整体表现为纯粹的反版权。

(3)允许对使用方收取一定的服务费

但必须非常清晰地界定,这个费用与代码成果无关,是一笔感谢费而已。

只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件。

遵循 GPL 协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议。

4.MIT协议

MIT协议全称为“Massachusetts Institute of Technology”,中文译为“麻省理工学院许可协议”,该协议与BSD、Apache Licence 2.0颇为相似,但给予开源软件使用人更大的权利和更少的限制,表现在:

(1)开源软件使用者有权使用、复制、修改、合并、出版发行、再授权等一系列二次开发权利和不受限的商业行为。

(2)更为惊人的是使用者可以做出与MIT条款相反的一些授权声明。

目前使用 MIT 协议常用的软件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。

5.LGPL协议

GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证)。

LGPL 是 GPL 的一个衍生版本,也被称为 GPL V2,该协议主要是为类库设计的开源协议。

LGPL 允许商业软件通过类库引用(link)的方式使用 LGPL 类库,而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改 LGPL 协议的代码或者衍生品,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,

但不适合希望以 LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

6.Mozilla许可证

Mozilla公共许可证(英语:Mozilla Public License,简称MPL)  允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。

要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,

源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。

二.如何选择开源协议

1.开源协议逻辑图

2.宽松程度:MIT>BSD>Apache>LGPL>Mozilla>GPL

三.QT的开源协议

1.QT是开源的,需要遵循LGPL、GPL协议

  2009年3月发布的Qt 4.5 起,诺基亚为Qt增添开源LGPL授权选择。 Qt的开源协议主要是LGPL(Lesser General Public License),这是一个商业友好的协议,允许开发者使用LGPL协议开发商业程序或非商业的闭源程序。

  此外,Qt也提供了GPL(GNU General Public License)协议,GPL协议要求只要在一个软件中使用GPL协议的产品,则该软件产品也必须采用GPL协议,即必须是开源和免费的。

  

2.Qt也提供了Commercial商业协议

Qt的商业协议则是由Nokia定义的,由Nokia和购买方签订的具有法律效应的Qt产品授权协议,商业授权协议是需要费用的。

  Qt专业版和企业版是Qt的商业版本。

  如果你购买了这些商业版本,则可以获得技术支持和升级服务。

  

3.QT官网各个模块开源许可查询

https://www.qt.io/zh-cn/product/features

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell 脚本笔记2

3.env与set区别 env用于查看系统环境变量 set用于查看系统环境变量自定义变量函数 4.常用环境变量 变量名称含义PATH命令搜索的目录路径, 与windows的环境变量PATH功能一样LANG查询系统的字符集HISTFILE查询当前用户执行命令的历史列表 Shell变量:自定义变量 目标…

HCIP【VRRP、MSTP、VLAN综合实验】

目录 一、实验拓扑图: ​编辑二、实验要求 三、实验思路 四、实验步骤 (1) eth-trunk技术配置 (2)vlan 技术配置 (3)配置SW1、SW2、AR1、ISP的IP地址 (4)在交换机…

FBB-Frontiers in Bioengineering and Biotechnology

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Frontiers in Bioengineering and Biotechnology是专注生物工程和生物技术领域的开放获取期刊。 研究范围涵盖生物材料、生物力学、生物工艺工程、生物安全和生物安保,生物传…

QT项目-欢乐斗地主游戏

QT项目-欢乐斗地主游戏 游戏概述游戏规则牌型牌型的大小游戏角色游戏规则游戏的胜负游戏计分规则 游戏相关的类介绍卡牌类玩家类窗口类游戏控制类游戏策略类线程类音频类 游戏主要组件卡牌玩家窗口 游戏控制源码 游戏概述 游戏规则 不同地域游戏规则可能有些许差异&#xff0c…

MySQL之Schema与数据类型优化(三)

Schema与数据类型优化 BLOB和TEXT类型 BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。 实际上它们分别属于两组不同的数据类型家族:字符类型是TINYTEXT,SMALLTEXT,TEXT,MEDIUMTEXT,LONG…

Spring Cloud整合Sentinel

1、引入依赖 链接: 点击查看依赖关系 父pom <spring.cloud.version>Hoxton.SR12</spring.cloud.version> <spring.cloud.alibaba.version>2.2.10-RC1</spring.cloud.alibaba.version>Sentinel应用直接引用starter <dependency><groupId&…

【UE5.1】* 动画重定向 (让你的角色可以使用小白人全部动画)

前言 这里以小白人动画重定向给商城资产“Adventure Character”中的角色为例&#xff0c;阐述如何使用UE5.1进行动画重定向。 步骤 1. 创建一个IK绑定 这里选择小白人的骨骼网格体 这里命名为“IKRig_Mannequin” 2. 再新建一个IK绑定&#xff0c;这里使用你要替换给的角色…

MyBatis入门——MyBatis XML配置文件(3)

目录 一、配置连接字符串和MyBatis 二、写持久层代码 1、添加 mapper 接口 2、添加 USerInfoXmlMapper.xml 3、测试类代码 三、增删改查操作 1、增&#xff08;Insert&#xff09; 返回自增 id 2、删&#xff08;Delete&#xff09; 3、改&#xff08;update&#xf…

软考--试题六--中介者模式(Mediator)

中介者模式(Meditor) 意图 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互 结构 适用性 1、一组对象以定义良好但是复杂的方式进行通信&#xff0c;产生的相互依赖关…

民国漫画杂志《时代漫画》第17期.PDF

时代漫画17.PDF: https://url03.ctfile.com/f/1779803-1248612629-85326d?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

力扣HOT100 - 1143. 最长公共子序列

解题思路&#xff1a; 动态规划 class Solution {public int longestCommonSubsequence(String text1, String text2) {int m text1.length(), n text2.length();int[][] dp new int[m 1][n 1];for (int i 1; i < m; i) {char c1 text1.charAt(i - 1);for (int j 1…

深度学习之基于YoloV5的动物识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与目标 在生态研究、动物保护、以及畜牧业等多个领域&#xff0c;对动物进行准确、高效的识别都具有重…

形态学操作:腐蚀、膨胀、开闭运算、顶帽底帽变换、形态学梯度区别与联系

一、总述相关概念 二、相关问题 1.形态学操作中的腐蚀和膨胀对图像有哪些影响&#xff1f; 形态学操作中的腐蚀和膨胀是两种常见的图像处理技术&#xff0c;它们通过对图像进行局部区域的像素值替换来实现对图像形状的修改。 腐蚀操作通常用于去除图像中的噪声和细小的细节&a…

单链表oj

练习 1. 删除val节点 oj链接 这道题最先想出来的方法肯定是在遍历链表的同时删除等于val的节点&#xff0c;我们用第二中思路:不等于val的节点尾插&#xff0c;让后返回新节点。代码如下&#xff1a; struct ListNode* removeElements(struct ListNode* head, int val) {str…

软考高级-信息系统项目管理师案例题选择题做题总结

1.不应该只会建立变更和配置管理的规则&#xff0c;应该建立变更控制流程 2.变更的影响不应该只由工程师评估 3.没有对变更和修改进行记录 4.变更完成后&#xff0c;客户没有对变更进行验证 5.变更没有通知相关人员 6.变更没有和配置管理关联 7.项目变更管理的工作流程&#xf…

SOLIDWORKS科研版的介绍

SOLIDWORKS科研版的介绍 针对研究项目充分利用软件功能&#xff0c;无任何限制访问有关工程和科学的最新技术&#xff0c;并与世界各地的其他用户进行交流。 SOLIDWORKS科研版可为研究人员提供有关 SOLIDWORKS 设计和科学工程技术的最新知识&#xff0c;并使他们与世界范围内的…

08.CNN

文章目录 Observation 1Pooling - Max PoolingFlattenApplication&#xff1a;Playing Go使用验证集选择模型食物分类 Observation 1 Pooling - Max Pooling Pooling主要为了降低运算量&#xff0c;现在一般不用了&#xff0c;全convolution Flatten Application&#xff1a;P…

Linux|如何在 awk 中使用流控制语句

引言 当您从 Awk 系列一开始回顾我们迄今为止介绍的所有 Awk 示例时&#xff0c;您会注意到各个示例中的所有命令都是按顺序执行的&#xff0c;即一个接一个。但在某些情况下&#xff0c;我们可能希望根据某些条件运行一些文本过滤操作&#xff0c;这就是流程控制语句的方法。 …

鲸尾识别获奖方案总结

文章目录 1st solution(classification)2nd place code, end to end whale Identification model3rd place solution with code: ArcFace4th Place Solution: SIFT Siamese5th solution blog post code -Siamese7th place Pure Magic thanks Radek solution: classification9…

QGIS DEM数据快速获取

背景 Dem 是非常重要的数据&#xff0c;30 m 的精度也是最容易获取的&#xff0c;目前有很多种方式可以获取&#xff0c;比如地理空间数据云&#xff0c;今天介绍用 QGIS插件获取。 这种方式的最大优势是方便快捷。 插件下载与安装 插件-管理并安装插件-搜索下载 OpenTopogr…