开源许可证 如何工作

by Radu Raicea

由Radu Raicea

开源许可证的工作方式以及如何将其添加到您的项目中 (How open source licenses work and how to add them to your projects)

Recently, there was some exciting news for developers around the world. Facebook changed the license of multiple libraries they develop. They switched from BSD-3+patents to a MIT.

最近,对于世界各地的开发人员来说,有一些令人振奋的消息。 Facebook更改了他们开发的多个库的许可。 他们从BSD-3 +专利转到了MIT

That seems good, but what does it mean? What are the implications of different open source licenses?

看起来不错,但这意味着什么呢? 不同的开源许可证有什么含义?

This article will give you a quick understanding of the popular licenses. It will also teach you how to apply them to your open source projects on GitHub.

本文将使您快速了解常用许可证。 它还将教您如何将它们应用于GitHub上的开源项目。

权威 (The Authority)

The most popular open source licenses have an important aspect in common. The Open Source Initiative (OSI) has approved them.

最受欢迎的开源许可证具有一个重要的共同点。 开放源代码计划 (OSI)已批准它们。

OSI formed in 1998 with the goal of promoting open source software. It has created the Open Source Definition (OSD) to define what an open source software means.

OSI成立于1998年,旨在推广开源软件。 它创建了开放源代码定义 (OSD)来定义开放源代码软件的含义。

This is how they describe themselves:

他们是这样描述自己的:

The Open Source Initiative (OSI) is a non-profit corporation with global scope formed to educate about and advocate for the benefits of open source and to build bridges among different constituencies in the open source community.

开源倡议(OSI)是一家具有全球范围的非营利性公司,其成立目的是教育和倡导开源的好处,并在开源社区的不同群体之间建立桥梁。

执照 (The Licenses)

Most open source licenses include the following statements:

大多数开源许可证包括以下声明:

  1. Software can be modified, used commercially, and distributed.可以对软件进行修改,商业使用和分发。
  2. Software can be modified and used in private.可以私下修改和使用软件。
  3. A license and copyright notice must be included in the software.该软件必须包含许可证和版权声明。
  4. Software authors provide no warranty with the software and are not liable for anything.软件作者不对软件提供任何保证,也不对任何事情负责。

We will go through the most popular licenses, in order from the most restrictive to the most permissive (from a user’s perspective).

我们将按照从最严格到最宽松的顺序(从用户的角度),按照最受欢迎的许可证进行操作。

GNU通用公共许可证,版本3(GPLv3) (GNU General Public License, version 3 (GPLv3))

GPLv3 is one of the most restrictive licenses. It offers high protection for the author of the software.

GPLv3是限制性最强的许可证之一。 它为软件作者提供了高度保护。

  • The source code must be made public whenever a distribution of the software is made.

    每当分发软件时,都必须将源代码公开

  • Modifications of the software must be released under the same license.

    该软件的修改必须以相同的许可证发布

  • Changes made to the source code must be documented.

    对源代码所做的更改必须记录在案

  • If patented material was used in the creation of the software, it grants the right for users to use it. If the user sues anyone over the use of the patented material, they lose the right to use the software.如果创建软件时使用了专利材料,则它授予用户使用软件的权利。 如果用户起诉任何人使用专利材料,他们将失去使用该软件的权利。

GPLv2 is also very popular. The main difference from GPLv3 is the clause on patent grants.

GPLv2也很受欢迎。 与GPLv3的主要区别在于专利授权条款。

That clause was added in version 3 to prevent companies from charging users for the use of their patents.

在第3版中添加了该条款,以防止公司向用户收取使用其专利的费用 。

Popular projects using GPLv3 are Bash and GIMP. Linux uses GPLv2.

使用GPLv3的流行项目是BashGIMPLinux使用GPLv2。

Ezequiel Foncubierta pointed something important for GPL licenses:

Ezequiel Foncubierta指出了GPL许可证的重要事项:

The license of your source code must be compatible with the license of the open source code you are linking to. For instance, if your code is proprietary, you won’t be allowed to use a library under the GPL license. This is where people tends to make more mistakes.

您的源代码的许可证必须与您链接到的开源代码的许可证兼容。 例如,如果您的代码是专有的,则将不允许您使用GPL许可下的库。 这是人们容易犯更多错误的地方。

Apache许可2.0 (Apache License 2.0)

Apache License 2.0 offers more flexibility to the users.

Apache License 2.0为用户提供了更大的灵活性。

  • The source code doesn’t need to be public when a distribution of the software is made.

    发行软件时, 不需要公开源代码。

  • Modifications to the software can be release under any license.

    可以根据任何许可发布对软件的修改。

  • Changes made to the source code must be documented.

    对源代码所做的更改必须记录在案。

  • It offers the same patent usage protection as GPLv3.它提供与GPLv3相同的专利使用保护。
  • It explicitly prohibits the use of trademarked names found in the project.它明确禁止使用在项目中找到的商标名称。

Popular projects using Apache License 2.0 are Android, Apache, and Swift.

使用Apache License 2.0的流行项目是AndroidApacheSwift

伯克利软件发行(BSD) (Berkeley Software Distribution (BSD))

BSD has two main versions: 2-clause and 3-clause. They both offer more flexibility to the users than the Apache License 2.0.

BSD有两个主要版本: 2子句和3子句 。 与Apache License 2.0相比,它们都为用户提供了更大的灵活性。

  • The source code doesn’t need to be public when a distribution of the software is made.

    发行软件时, 不需要公开源代码。

  • Modifications to the software can be release under any license.

    该软件的修改可以在任何许可发布

  • Changes made to the source code may not be documented.

    对源代码所做的更改可能 不会记录在案。

  • It offers no explicit position on patent usage.它对专利使用没有明确的立场。
  • The license and copyright notice must be included in the documentation of the compiled version of the source code (as opposed to only in the source code).

    许可证和版权声明必须包含在源代码的编译版本的文档中(而不是仅包含在源代码中)。

  • The BSD 3-clause states that the names of the author and contributors can’t be used to promote products derived from the software without permission.BSD 3条款规定,未经许可,不得使用作者和贡献者的名字来推广从该软件衍生的产品。

Popular projects using BSD license are Go (3-clause), Pure.css (3-clause), and Sentry (3-clause).

使用BSD许可证的热门项目是Go (3子句), Pure.css (3子句)和Sentry (3子句)。

麻省理工学院执照 (MIT License)

MIT is one of the most permissive licenses. It is also the most popular one. It offers very low protection for the author of the software.

麻省理工学院是最宽松的许可证之一。 它也是最受欢迎的一种。 它为软件作者提供了非常低的保护。

  • The source code doesn’t need to be public when a distribution of the software is made.

    发行软件时, 不需要公开源代码。

  • Modifications to the software can be release under any license.

    可以根据任何许可发布对软件的修改。

  • Changes made to the source code may not be documented.

    对源代码所做的更改可能 不会记录在案。

  • It offers no explicit position on patent usage.它对专利使用没有明确的立场。

Popular projects using MIT are Angular.js, jQuery, Rails, Bootstrap, and many more.

使用MIT的流行项目是Angular.jsjQueryRailsBootstrap等。

Facebook’s React.js had a BSD-3+patents license up until September 25th. It combined the BSD-3 license with an extra clause on patents usage.

截至9月25日,Facebook的React.js拥有BSD-3 +专利许可。 它结合了BSD-3许可和关于专利使用的附加条款。

In a nutshell, if you sue Facebook or any of its subsidiaries, you lose the right to use React (or any other software under the same license).

简而言之,如果您起诉Facebook或其任何子公司,您将失去使用React(或具有相同许可的任何其他软件)的权利。

React is now MIT licensed. You are now able to sue Facebook and still use React. What a relief!

React现在已获得MIT许可。 现在,您可以起诉Facebook并仍然使用React。 终于解脱了!

将许可证应用于开源项目 (Applying a license to your open source projects)

Licensing your projects is easy. You need to add a LICENSE, LICENSE.txt or LICENSE.md in the root directory of your repository.

许可您的项目很容易。 您需要在存储库的根目录中添加LICENSELICENSE.txtLICENSE.md

GitHub makes it even easier:

GitHub使它变得更加容易:

  1. Open your GitHub repository in a browser.在浏览器中打开GitHub存储库。
  2. In the root directory, click on Create new file.

    在根目录中,单击Create new file

  3. Name the file “LICENSE”.将文件命名为“ LICENSE”。
  4. Click on Choose a license template.

    单击Choose a license template

  5. Pick one of the licenses (all the ones mentioned in this article are there).选择其中一个许可证(本文中提到的所有许可证均已存在)。
  6. Once chosen, click on Review and submit.

    选择后,点击Review and submit

  7. Commit the file.

    Commit文件。

综上所述… (In summary…)

  • One of the most restrictive licenses is GPL.

    GPL是限制性最强的许可证之一。

  • One of the most permissive licenses is MIT.

    麻省理工学院是最宽松的许可证之一。

  • Other popular licenses are Apache License 2.0 and BSD.

    其他流行的许可证是Apache License 2.0BSD

  • To apply a license on your GitHub project, you need to create a LICENSE file using GitHub’s license templates.

    要将许可证应用于GitHub项目,您需要使用GitHub的许可证模板创建LICENSE文件。

Check out my explanation of how I used Python to find interesting people to follow on Medium!

看看我对我如何使用Python找到有趣的人进行跟踪的解释!

For more updates, follow me on Twitter.

有关更多更新,请在Twitter上关注我。

翻译自: https://www.freecodecamp.org/news/how-open-source-licenses-work-and-how-to-add-them-to-your-projects-34310c3cf94/

开源许可证 如何工作

开源许可证 如何工作_开源许可证的工作方式以及如何将其添加到您的项目中...相关推荐

  1. 开源做账软件_开源软件应该做广告吗?

    开源做账软件 鉴于我们对开源软件的依赖程度,人们会认为我们会有很多选择来支持编写代码的开发人员,但我们没有. 哦,可以肯定的是,如果这是一个涉及巨额资金的大型项目, 例如Kubernetes ,那么筹 ...

  2. 我国企业对开源社区的贡献度_开源对企业有利的6个理由

    我国企业对开源社区的贡献度 从根本上讲,开源解决方案要比专有解决方案好. 想知道为什么吗? 这是企业和政府组织从使用开源技术中受益的六个原因. 1.简化供应商审查 在将工程和财务资源投入到将产品集成到 ...

  3. 我国企业对开源社区的贡献度_开源社区对我意味着什么

    我国企业对开源社区的贡献度 每当我向朋友们介绍我的爱好时(我成为文档基金会执行董事的职业就成为职业生涯),我都会面临很多问题. 全球社区? 全球各地的贡献者? 一个开源社区? 你能吃吗? 好吧,实际上 ...

  4. 10大开源文档管理系统_开源文档的5大趋势

    10大开源文档管理系统 我已经做了很长时间的开源文档. 在过去的十年中,关于创作和出版的态度发生了很多变化. 这些趋势中的一些趋势似乎是周期性的,例如语义标记的流行. 最新趋势使文档更接近于代码,许多 ...

  5. 开源怎么保证专利_开源质量保证的基础

    开源怎么保证专利 开源依赖于可持续发展的社区来快速开发代码,有效调试代码并构建新功能. 由于社区参与是自愿的,因此人们的技能,参与程度和时间承诺可能会有所不同. 考虑到这些因素的可变性,以及开放源代码 ...

  6. 开源创新的理念_开源如何解决创新问题

    开源创新的理念 几周前,世界上最大的移动电信公司之一的首席数字官(CDO)问我,像她这样的大型组织应如何考虑组织自身以保持对成本和风险的控制权,同时仍将其全球组织创新的自由. 她告诉我,在管理他们的网 ...

  7. 最佳 开源 人脸识别算法_开源项目的最佳社会结构是什么?

    最佳 开源 人脸识别算法 代码审查是一种实践,可促进开源项目中的快速协作,知识共享和最高质量. 代码审查的社会结构是项目的定义特征. 开源项目的最佳社会结构是什么? 在本文中,我们通过分析三个常见模型 ...

  8. 跨部门不配合工作_同事不配合工作,划水甚至推诿,该怎么体现你的手腕

    工作中,我们经常需要为了完成某个项目,而与部门内或跨部门的同事进行沟通合作,但很多时候,他们的配合往往是出于被动意愿的,打马虎眼,爱理不理,甚至互相推诿都是非常常见的态度.面对这些爱推工作不愿意配合你 ...

  9. 信息系统管理师能做什么工作_什么是管理工作?

    信息系统管理师能做什么工作 继续我关于管理的讨论,从广义上讲,我的论点是: 有要做的管理工作–与编码,测试和客户理解相同. 假装没有要做的工作,所有软件开发都可能简化为理性工程,这是幼稚的. 许多管理 ...

最新文章

  1. Git使用sublime_text作用默认编辑器
  2. C# Socket编程(3)编码和解码
  3. 4028: [HEOI2015]公约数数列
  4. hdu 3666 THE MATRIX PROBLEM 差分约束系统
  5. 如何让你的SQL运行得更快(二)
  6. Java面向对象之异常(自定义异常)
  7. python alpha量化交易软件_2019AI量化交易教程视频 AI量化交易模型教程 alpha量化选股模型交易系统 CTA型量化策略教程...
  8. VelocityTracker 速度追踪
  9. 飞思卡尔智能车准备篇
  10. 连接局域网打印机用计算机名,如何连接局域网内共享的打印机
  11. 简单的钓鱼网站的制作
  12. Http、浏览器面试题
  13. ecshop2.7.3 支付宝alipay官方电脑手机H5新版支付接口支持异步回调
  14. RK3568平台开发系列讲解(安卓篇)WakeLock分析
  15. actin/phobos后缀勒索病毒处理 百分百解密[cleverhorse@protonmail.
  16. 手把手教你制作andriod手机电子书
  17. 昆虫繁殖(继续理解递推和递归)
  18. 生产环境 /dev/vda1文件满了导致redis无法写入问题分析 以及df -h解析
  19. redhat KVM 桥接网络br0启动失败问题
  20. Windows Server 2012 R2 部署 .NET Core IIS应用程序池自动停止 补丁 漏洞

热门文章

  1. 【动画2】CALayer动画
  2. 3D Touch介绍: 一个数字压力器App和Quick Actions
  3. 最佳DevOps工具获奖者:CloudBees Jenkins平台
  4. 你需要的大概不是 enumerated
  5. Kubernetes1.5源码分析(二) apiServer之资源注册
  6. centos6.5 rsync+inotify同步配置笔记
  7. Java IO 体系结构
  8. 关闭Windows 8的metro UI的方法汇总
  9. entjs 键盘监听
  10. 9.QT-标准对话框