首页 > 其他分享 >关于开源协议

关于开源协议

时间:2022-08-24 15:11:29浏览次数:68  
标签:协议 LGPL 开源 关于 商业软件 软件 源代码

如果你开发的时候用了开源代码/组件。。。那就关注一下


开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。
开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一

1 GNU GPL(GNU General Public License,GNU通用公共许可证)

  只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件。
  遵循 GPL 协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的。

GPL 开源协议的主要特点:
特点	      说明
复制自由	允许把软件复制到任何人的电脑中,并且不限制复制的数量。
传播自由	允许软件以各种形式进行传播。
收费传播	允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
修改自由	允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。

 


2 BSD(Berkeley Software Distribution,伯克利软件发布版)协议

BSD 协议基本上允许用户“为所欲为”,用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面三个条件:

  • 如果再发布的软件中包含源代码,则源代码必须继续遵循 BSD 许可协议。
  • 如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了 BSD 协议。
  • 不允许用原始软件的名字、作者名字或机构名称进行市场推广。


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


3 Apache 许可证版本(Apache License Version)协议

Apache 和 BSD 类似,都适用于商业软件。Apache 协议在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。

现在热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议的软件时,要严格遵守下面的四个条件:

  • 该软件及其衍生品必须继续使用 Apache 许可协议。
  • 如果修改了程序源代码,需要在文档中进行声明。
  • 若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息。
  • 如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议

4 MIT(Massachusetts Institute of Technology)协议

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

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


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

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

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

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


 

标签:协议,LGPL,开源,关于,商业软件,软件,源代码
From: https://www.cnblogs.com/8335IT/p/16619949.html

相关文章

  • [ZMQ] ZMQ_PUB和ZMQ_SUB 关于缓存区的问题
    问题描述环境ubuntu18.04zmqversion:4.3.3设置了一个发送端和一个接收端,发送端是ZMQ_PUB,接收端ZMQ_SUB,并且通过zmq_setsockopt设置了ZMQ_SNDHWM,ZMQ_RCVHWM,ZMQ......
  • 关于CATALINA_HOME 和 CATALINA_BASE 的区别
    官方文档*以下内容从官方复制出来的*目录和文件这些是一些重要的tomcat目录:/bin-(启动,关闭和其他脚本)/conf-配置文件和相关DTD,这里最重要的文件是server.xml,它......
  • iLogtail开源之路
    简介: 2022年6月底,阿里云iLogtail代码完整开源,正式发布了完整功能的iLogtail社区版。iLogtail作为阿里云SLS官方标配的采集器,多年以来一直稳定服务阿里集团、蚂蚁集团以及......
  • 开源交流丨批流一体数据集成框架ChunJun数据传输模块详解分享
    课件获取:关注公众号“ChunJun”,后台私信“课件”获得直播课件视频回放:点击这里ChengYing开源项目地址:github丨gitee喜欢我们的项目给我们点个__STAR!STAR!!STAR!!!(重要的......
  • 【Vue模板报错】关于 The template root requires exactly one element 报错的解决方
    报错内容  报错原因Vue只允许模板里存在一个根节点。解决方案在<template>中添加一个<div>标签,之后所有的组件全部加在<div>即可解决。 ......
  • 关于npm ERR! ERESOLVE could not resolve 问题解决
    1、问题描述从代码仓库拉取代码到本地,执行npminstall命令安装项目依赖,提示如下图错误  问题出现的原因由于npm版本问题,npm不同版本库之间命令不兼容。解决办法:执......
  • 关于rt-thread调度器实现的底层代码分析
      本文使用了rt-thread自带的钩子函数和显示函数进行了实验,从rt-thread自带的延时函数rt_thread_delay()函数入手,对rt-thread系统的调度器进行分析。主要参考资料是野火......
  • TCP协议详解
    目录TCP协议报头三次握手四次挥手在网络基础里面有提到TCP协议是一种面向连接的可靠的传输协议,那么本文主要介绍TCP协议是如何实现连接及可靠性传输的。TCP协议报头......
  • TCP/IP协议
    一、概念TCP/IP(传输控制协议/网际协议)是供已连接因特网的计算机进行通信的通信协议。通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信......
  • 部标Jt809协议视频对接播放下级平台JT1078视频
    部标809协议是部标协议中最复杂的协议,而其中的视频协议对接部分,又是809协议指令中最复杂的指令,也是技术实现最困难的部分。这个复杂有本身涉及上级,下级,和设备多环节交互的......