[每周一更]-(第89期):开源许可证介绍

2024-03-01 20:36

本文主要是介绍[每周一更]-(第89期):开源许可证介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

开源代码本就是一种共享精神,一种大无畏行为,为了发扬代码的魅力,创造更多的价值,让爱传递四方,让知识惠及更多人;

写文章也是一种共享精神,让知识传播出去。

介绍下开源中不同许可证的内容限制。

开源代码和写文章,本质上都存在版权等问题,大家都是友好交流沟通,以学习为目的,创造良性的循环。
在这里插入图片描述

开源许可证是规定软件或其他创作作品如何被使用、修改和分发的法律条款。选择适当的开源许可证对于开源项目的成功和社区的发展至关重要。以下是一些常见的开源许可证及它们的区别:

LGPL(GNU宽通用公共许可证):

  • 特点: 允许将LGPL的代码与非GPL或LGPL代码混合使用,但对于任何修改的LGPL代码,要求公开源代码。
  • 适用场景: 适用于库或框架,希望鼓励开发者修改和分发修改的情况。

MPL(Mozilla公共许可证):

  • 特点: 要求派生作品的源代码必须公开,但可以与其他许可证混合使用;允许私有修改和分发,但要求任何修改的部分必须使用MPL、GPL或LGPL进行再授权。
  • 适用情景: 适用于要求保持开放性的项目,同时允许与其他许可证合并。

GPL(GNU通用公共许可证):

  • 特点: 要求任何基于或修改的项目也必须使用GPL,确保衍生作品也是开源的。
  • 适用情景: 适用于强调自由共享的项目,可能限制商业项目的使用。

BSD许可证(2-Clause和3-Clause):

  • 特点: 允许使用、修改和分发,不带有像GPL那样的传染性。
  • 适用情景: 适用于需要保留版权和许可声明的项目,对商业项目友好。

MIT许可证:

  • 特点: 简洁明了,允许自由使用、修改和分发,只要包含原始版权和许可声明。
  • 适用情景: MIT许可证非常灵活,适用于几乎所有类型的项目,包括商业项目。

Apache许可证:

  • 特点: 允许使用、修改和分发,包含专利授予条款,要求在派生项目中包含原许可证和通告。
  • 适用情景: 适用于大规模的开源项目,希望保护专利权和鼓励贡献。

Affero通用公共许可证(AGPL):

  • 特点: 类似于GPL,但在用户通过网络提供软件服务时也要求公开源代码。
  • 适用场景: 适用于在Web上提供服务的项目,希望确保修改的代码也是开源的。

AGPL(GNU Affero通用公共许可证):

  • 特点: 类似于GPL,但特别适用于网络服务,要求通过网络提供的修改版本也必须开源。
  • 适用情景: 适用于希望确保网络服务的用户也能获得开源代码的项目。

Unlicense:

  • 特点: 放弃所有版权和相关权利,允许任何使用、修改和分发,无需提供原版权声明。
  • 适用情景: 适用于希望放弃所有权利的项目,对于公共领域贡献。
    选择合适的开源许可证取决于项目的性质、目标以及你对派生项目的期望。在选择许可证时,最好仔细研究每个许可证的具体条款,并在需要时寻求法律意见。

Creative Commons许可协议(许可证):

  • 特点: 适用于文档、艺术品等非软件项目,有不同版本和变种。
  • 适用情景: 用于规定创作作品的使用、修改和分发规则。

Creative Commons(CC)提供了多种许可协议,允许创作者自定义他们对作品的共享方式。以下是一些常见的Creative Commons许可协议,每个协议都有不同的组合特征:

  1. 署名(Attribution,BY):
    • 允许他人复制、分发、展览和执行作品,甚至是在商业用途下,只要作者或许可人得到适当的署名。
  2. 非商业性使用(NonCommercial,NC):
    • 允许他人在非商业性的情况下使用作品。这意味着作品不能被用于商业目的。
  3. 相同方式共享(ShareAlike,SA):
    • 如果采用了这一要素,那么新创作的作品必须采用相同的许可协议。这确保了新作品也以相似的开放方式共享。
  4. 无衍生物(NoDerivatives,ND):
    • 允许他人下载作品,但不允许对作品进行修改、转换、扩展或以其为基础进行创作。原作品必须以未经修改的形式被分发。
  5. 共享(CC0):
    • 允许创作者放弃所有著作权和相关权利,使作品成为公共领域的一部分。这是最开放的许可方式,允许任何人在任何目的下使用作品,无需署名。

以下是一些常见的Creative Commons许可协议的组合:

  • CC BY(署名): 允许任何目的下的共享、修改、商业使用,只要提供适当的署名。
  • CC BY-SA(署名-相同方式共享): 允许共享、修改、商业使用,只要提供适当的署名,并且新作品采用相同的许可协议。
  • CC BY-NC(署名-非商业性使用): 允许非商业性使用,只要提供适当的署名。
  • CC BY-ND(署名-无衍生物): 允许任何目的下的共享,只要提供适当的署名,但不允许对作品进行修改。
  • CC BY-NC-SA(署名-非商业性使用-相同方式共享): 允许非商业性使用,只要提供适当的署名,并且新作品采用相同的许可协议。
  • CC BY-NC-ND(署名-非商业性使用-无衍生物): 允许非商业性使用,只要提供适当的署名,但不允许对作品进行修改。

以上列举的是常见的几种组合,实际上,Creative Commons提供了更多的组合方式,以便创作者选择适合他们需求的许可协议。

举例:

  • CSDN:CC 4.0 BY-SA(署名-相同方式共享 4.0 国际)
  • 个人博客:CC BY-NC 4.0 DEED(署名-非商业性使用 4.0 国际)

这篇关于[每周一更]-(第89期):开源许可证介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763726

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一