开源许可证 如何工作_开源许可证的工作方式以及如何将其添加到您的项目中...
开源许可证 如何工作
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:
大多数开源许可证包括以下声明:
- Software can be modified, used commercially, and distributed.可以对软件进行修改,商业使用和分发。
- Software can be modified and used in private.可以私下修改和使用软件。
- A license and copyright notice must be included in the software.该软件必须包含许可证和版权声明。
- 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的流行项目是Bash和GIMP 。 Linux使用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的流行项目是Android , Apache和Swift 。
伯克利软件发行(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.js , jQuery , Rails , Bootstrap等。
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.
许可您的项目很容易。 您需要在存储库的根目录中添加LICENSE
, LICENSE.txt
或LICENSE.md
。
GitHub makes it even easier:
GitHub使它变得更加容易:
- Open your GitHub repository in a browser.在浏览器中打开GitHub存储库。
In the root directory, click on
Create new file
.在根目录中,单击
Create new file
。- Name the file “LICENSE”.将文件命名为“ LICENSE”。
Click on
Choose a license template
.单击
Choose a license template
。- Pick one of the licenses (all the ones mentioned in this article are there).选择其中一个许可证(本文中提到的所有许可证均已存在)。
Once chosen, click on
Review and submit
.选择后,点击
Review and submit
。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.0和BSD 。
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/
开源许可证 如何工作
相关文章:

通过API文档查询Math类的方法,打印出近似圆,只要给定不同半径,圆的大小就会随之发生改变...
package question;import java.util.Scanner; import java.lang.Math;public class MathTest {/*** 未搞懂* param args*/public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入圆的半径:");Scanner in new Scanne…

4 OC 中的内存分配以及内存对齐
目录 一 OC 中的内存分配 一 OC 中的内存分配 student 结构体明明是20?为什么是24个字节,因为结构体会按照本身成员变量最大的内存进行对齐,最大成员变量是8个字节,因此就是8的倍数,24个字节。 class_getInstanc…

JDE函数--GetUDC(B函数)
GetUDC使用方式: 转载于:https://www.cnblogs.com/GYoungBean/p/4117965.html

k8s crd构建方法_告诉您正在构建没人想要的东西的8种方法(以及处理方法)
k8s crd构建方法by Geoffrey Bourne杰弗里伯恩(Geoffrey Bourne) 告诉您正在构建没人想要的东西的8种方法(以及处理方法) (8 ways to tell you’re building something nobody wants (and what to do about it)) Building something users want is hard — damn hard. They ar…

iOS开发 - 线程与进程的认识与理解
进程: 进程是指在系统中正在运行的一个应用程序,比如同时打开微信和Xcode,系统会分别启动2个进程;每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内;线程: 一个进程要想执行任务,必须得有…

Winform开发中常见界面的DevExpress处理操作
我们在开发Winform程序的时候,需要经常性的对界面的一些控件进行初始化,或者经常简单的封装,以方便我们在界面设计过程中反复使用。本文主要介绍在我的一些项目中经常性的界面处理操作和代码,以便为大家开发的时候提供必要的参考。…

5 OC 中的三种对象
目录 OC 中对象的分类 一 instance 对象 二 类对象 三 元类对象 总结: OC 中对象的分类 instance 对象 类对象 元类对象 一 instance 对象 内存中包含哪些信息 isa 指针 其他成员的变量Student *stu1 [[Student alloc]init]; 以上的stu1 就是实例对象 二 类对象 以…

travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ciby Vijayabharathi Balasubramanian通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行Web开发工作流程 (How to use Travis CI and GitHub for your web development workflow’s heavy lifting) It’s common to hack together apps on CodePen wh…

android.view.ViewRoot$CalledFromWrongThreadException的解决办法
android 是不允许子线程直接更新UI的,如果一定要在子线程直接更新UI就会出现android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.大概意思就是说 只有原来创建找个视图hierarchy的…

6 OC中 isa 和 superclass 的总结
目录 一 关于isa 和 superclass 的总结 二 为什么基类的metaclass 的superclass 指向的是基类的类 三 isa 的细节问题 总结如下: instance 的isa 指向是classclass 的isa 指向是metaclassmetaclass 的isa指向是基类的imetaclassclass 的superclass 指向的是父类…

opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录
对于此功能其实很简单:主要是在c方面的字母数字的拼接问题存在一定的问题。C数字字母拼接问题: 1 #include <fstream> 2 #include <string> 3 #include <iostream> 4 #include "highgui.h" 5 #include <cv.h> 6 #…

css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
css菜单缓慢滑动by Supriya Shashivasan由Supriya Shashivasan 如何使用HTML,CSS和JavaScript构建滑动菜单栏 (How to build a sliding menu bar using HTML, CSS and JavaScript) A menu is what you look for when you land at a website. It has options and gi…

素数环问题---深度搜索遍历
1264: 素数环 时间限制: 1 Sec 内存限制: 128 MB提交: 29 解决: 8[提交][状态][讨论版]题目描述 有一个长度为n的环形序列由1,2,3,...,n组成,环中相邻两个整数和均为素数。你需要找到所有满足条件的环。输入 输入n表示环的长度(n<16)输出…

android之Notification通知
我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的。 package cn.com.chenzheng_…

7 OC 中class 类的结构
目录 一 OC 中class 的结构 https://opensource.apple.com/tarballs/objc4/ 在最新的objc源码中 化繁就简来看的话 是以下结构 struct objc_class : objc_object {objc_class(const objc_class&) delete;objc_class(objc_class&&) delete;void operator(con…

apple id无法创建_我们如何使用Apple的学习框架来创建我们的第一个应用程序
apple id无法创建by Jonata Corra由JonataCorra 我们如何使用Apple的学习框架来创建我们的第一个应用程序 (How we used Apple’s learning framework to create our first app) After one month of work, my team and I finished the first version of Echo, our tracker iOS…

个人作业1:小学四则运算——基于控制台
a.需求分析: 自动生成小学四则运算题目的命令行 “软件”,满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 1/8 7/24运算符为 , −, , 并且要求能处理用户…

getchar返回int类型
#include <stdio.h> /* copy input to output; 2nd version */main(){int c;c getchar();while(c ! EOF){putchar(c);c getchar();}} 直觉告诉我getchar返回值应该是char类型的,这个地方为什么不能用char类型来存储getchar()的返回值呢? 其实文中…

8 iOS中KVO 的本质
前言本质 Automatic key-value observing is implemented using a technique called isa-swizzling 这计划的意思就是 自动的键值观察的实现基于 isa-swizzling 原理 1.KVO是基于runtime机制实现的 2.当某个类的属性对象第一次被观察时,系统就会在运行期动态地创…

完成工作表-使用Google Spreadsheets作为数据后端
by Gilad Dayagi通过吉拉德达亚吉 完成工作表-使用Google Spreadsheets作为数据后端 (Get Sheet Done — using Google Spreadsheets as your data backend) If you want to rapidly prototype your next web apps, try using Google Spreadsheets as your data backend.如果您…

BIEE-CSS样式大全
字体属性:(font) 大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD 样式 {font-style: oblique;}(偏斜体) italic;(斜体) normal;(正常) 行高 {line-height: normal;}(正常) 单位&…

基于verilog的FPGA编程经验总结(XILINX ISE工具)
1.用ISE仿真的时候.所用变量一定要初始化. ISE默认初始量为"XXXXX", 而Quarters是默认为"00000"的, 其实实际上, 下到FPGA里后也是默认为0的,只是可以说ISE严谨得令人DT吧.比如说用一个累加器, result ABresult ,必须保证在某一刻A, B, result都为定值时,…

6 OC 中的isa 指针
目录 一 isa 指针 二 类对象中的superclass 一 isa 指针 isa 指针 ,OC 中的对象都是有的 如下图所示,实例对象isa 指针指向 类对象,类对象的isa 指针指向 元类对象 二 类对象中的superclass superclass 有什么用呢? 比如说创…

btf-raft共识算法_了解Raft共识算法:学术文章摘要
btf-raft共识算法by Shubheksha通过Shubheksha 了解Raft共识算法:学术文章摘要 (Understanding the Raft consensus algorithm: an academic article summary) This post summarizes the Raft consensus algorithm presented in the paper In Search of An Underst…

iOS asset 中定义颜色,xib中便捷访问
在aseet 中定义一个颜色 这样就可以在xib 中访问颜色了,这样就不用重复的去输入

三种序列化方式性能比较
一下代码比较了二进制序列化、xml序列化、Protobuf序列化的运行时间,可是代码显得十分冗余,是否有大神可以指点一二,万分感谢 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; usi…

mac mini 装UBUNTU后没有WIFI解决办法
1、在终端中运行如下命令,重新安装b43相关的全部驱动和firmware: 复制代码代码如下:sudo apt-get install bcmwl-kernel-source #Broadcom 802.11 Linux STA 无线驱动源sudo apt-get install broadcom-sta-commonsudo apt-get install broadcom-sta-sourcesudo apt-…

区块链c端应用小程序_区块链如何真正起作用? 我建立了一个应用程序向您展示。...
区块链c端应用小程序by Sean Han通过肖恩韩 区块链如何真正起作用? 我建立了一个应用程序向您展示。 (How does blockchain really work? I built an app to show you.) According to Wikipedia, a blockchain is:根据维基百科,一个区块链是࿱…

HDU 4913 Least common multiple
/* hdu4913 Least common multiple http://acm.hdu.edu.cn/showproblem.php?pid4913 离散化 线段树 统计逆序数思想 tips: 1、线段树中一定要到处都取模,否则wa。。。 2、lazy是乘积的形式出现,不是加和*/ #include <cstdio> #include <algori…

JS ES6 实用笔记
微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 这篇博文我会一直更新。 一.导出导入的两中方式 1.export //demo1.js export const a 6 导入语法为: import {a} form demo1 2.export default //demo2.js export default const b 6 …