当前位置:网站首页>Open source ecology 𞓜 super practical open source license basic knowledge literacy post (Part 2)
Open source ecology 𞓜 super practical open source license basic knowledge literacy post (Part 2)
2022-06-23 06:41:00 【Orillusion】
In the last issue, we introduced about open source License Some basic knowledge . Although open source License The total number of , But commonly used License It's still very limited . Today we will have a more direct understanding of the common License Specific meaning and difference . Through this article , First of all, you can use License There is a basic understanding , At the same time, it can make us more “ Security ” Other open source projects , Finally, if we need to lead the development of open source projects , You can also choose open source that is suitable for you License.
MIT
MIT, From MIT (Massachusetts Institute of Technology, MIT), also called X11 agreement . This is currently the most relaxed , Least restrictive open source protocols . Use MIT License As the author of the open source project , The only appeal is to retain the copyright , There are no other restrictions . In the use of MIT License Open source project , Just remember a little : Modified code or distribution package , Whether in source code or binary form , Must include the original author's license information .
* On behalf of open source projects :React, Vue, Angular, JQuery, Node.js, Three.js, Lua, .Net Core, Ruby on Rails etc.
For commercial software

The data comes from the Internet
BSD
BSD, Berkeley software distribution (Berkeley Software Distribution). It is also a fairly loose open source agreement , Be free to Use , Modify the source code , You can also select open source or closed source for the modified code . But here's what we need to know BSD It is not an agreement in itself , It consists of five protocols :0-Clause、1-Clause、2-Clause、 3-Clause, and 4-Clause. The preceding figures represent the number of restrictions , such as 4-Clause Namely BSD Four clause version . First version of BSD Refers to 4-Clause, at present 4-Clause and 1-Clause They are no longer used . and 0-Clause It has also developed into a public domain agreement (Public Domain License), Not even the author information is required to be retained . At present, the most popular BSD refer to BSD 3-Clause License(BSD-3-Clause), It's also called BSD 3-Clause New/Revised License. So here we mainly introduce BSD-3-Clause When a derived project occurs , What needs attention :
If it is derived from an open source project , The source code must contain the BSD agreement .
If it is derived from a closed source project , Such as binary class libraries or commercial software , In the software documentation and copyright notice, the contents of the original project shall be included BSD agreement .
Whether derived from open source or closed source projects , You can't use BSD Project the author 、 Name of the organization or project product for marketing .
meanwhile ,BSD 2-Clause License(BSD-2-Clause) It's also more commonly used , It's also called BSD 2-Clause Simplified/FreeBSD License. What we need to know is BSD-2-Clause and BSD-3-Clause The biggest difference is , It ignores the third point above “ No hype or advertising ” Restrictions on the terms of .
* On behalf of open source projects :Dart, Django, FreeBSD, Flask, Go, Nginx etc.
For commercial software

The data comes from the Internet
Apache-2.0
Apache-2.0, It's a by Apache Free software license issued by the software foundation (Apache License Vesion 2.0), The latest version is “Version 2”. it and BSD similar , It is also a relatively loose open source agreement , Allow users to modify and republish . however , When publishing derived projects, you need to pay attention to :
If you modify the source code , It needs to be explained in the modified document .
In a derived project , You need to have the... In the original project code Apache-2.0 agreement , It also includes trademarks , Patent declaration and other descriptions required to be included by the original author .
In a derived project , If you include Notice file , It's in Notice The file also needs to be marked with Apache-2.0 agreement .
* On behalf of open source projects :Android, Apache HTTP Server, Hadoop, Spark, Babylon.js, LLVM, Log4j etc.
For commercial software

The data comes from the Internet
MPL
MPL, from Mozilla The foundation develops and maintains (Mozilla Public License).MPL After going through 1.0 and 1.1 After two versions , The latest version is 2.0, namely MPL-2.0. In the last article, we mentioned the copyright license terms (Copyleft Licenses) Type of License,MPL Is one of them , So its requirements are relatively strict .MPL The main features of open source projects include :
References in derived projects MPL The source code of the protocol should remain open source . If , Yes MPL The source code of the project has been modified , The modified part needs to be explained .
The original project is a commercial project based on other open source protocols or even closed source , quote MPL After the project , If you still want to keep the open source agreement of the original project or continue to publish closed source , That can be done by designing a call MPL Of project code “ Interface ” Program . The source code of this interface program must remain MPL agreement ,MPL The project itself should also be put into a separate program file to continue MPL agreement , Other code parts of the original project will not be affected .
MPL The author of the project , Can not provide the source code that has been protected by patent ( Unless he is the patentee , And the book is free for the public to license these source code ), and MPL The source code contained in the project itself can no longer be used to apply for related patents .
We can see ,MPL There is no requirement that derived projects must be completely open source or must follow MPL agreement , It allows access “ Interface ” The mechanism of , Make private modules exist in derived projects , and MPL Is compatible with GPLv3( Not GPLv2) And Apache-2.0 Agreed . These characteristics make MPL It has certain capacity expansion for commercial projects . therefore , We also call it MPL Weak copyright license terms .
* On behalf of open source projects :Firefox, Thunderbird, Letsencrypt/boulder etc.
For commercial software , But pay extra attention to some of the things mentioned above .

The data comes from the Internet
GPL
GPL,GNU General public permit (GNU General Public License), By the free software foundation (Free Software Foundation,FSF) Richard · Stohmann is the GNU Written by the project , Is the most famous open source License.GNU Short for “GNU is Not Unix”, About GNU For details of the project, please refer to the link :
https://en.wikipedia.org/wiki/GNU_Project
GPL It is also a family term , Contains GPLv1、GPLv2 and GPLv3 Three clauses .GPL There is also a figurative title , be called “ Infectious ” agreement , This is also GPL The biggest feature of the agreement : Any one As long as a project is used GPL The code of the protocol , The project itself must be open source , And it must be observed GPL agreement . This is it. GPL It's contagious , We also call it GPL For strong copyright license terms .
The present ,GPLv2 and GPLv3 It's often used GPL agreement , and GPLv1 It is no longer widely used .GPLv3 Is based on GPLv2 The amended agreement . Revised v3 The length of the agreement is v2 Twice as many , It is mainly to improve and more clearly describe some subject terms , Including patent indemnity , Internalization and remedies for license infringement, etc . For details, please refer to the following links :
http://www.groklaw.net/article.php?story=20060118155841115
For us, we just need to know ,GPLv2 and GPLv3 The biggest difference is : They are completely incompatible with each other .GPLv3 It will be more compatible with other open source protocols , Like the one mentioned earlier MPL Fully compatible with GPLv3, But not compatible GPLv2.
* On behalf of open source projects :Linux, MySQL, Blender, VLC etc.
Commercial use is allowed , But it is not applicable to commercial software with closed source requirements .

The data comes from the Internet
LGPL
LGPL,GNU Wide general public license (GNU Lesser General Public License). It is GPL An evolving version of the protocol , The purpose is to solve GPL The highly contagious problem of , It's also defined as For one " Class library reference " Open source licenses . For different versions of GPL agreement ,LGPL There are also corresponding versions . For details, please refer to the following links :
https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
LGPL The specific requirements are :
Follow GPL equally ,LGPL Derivative projects of must also adopt LGPL agreement .
If the derived project references LGPL How the project works , Not including the source code , But through “ library ” By calling or linking , The new derived project allows closed source .
It can be seen that ,LGPL Open source project of the protocol , It can be referenced by closed source commercial software as a third-party class library . But we can't build on it , Derivation of closed source commercial projects by modifying source code or including source code generation .
* On behalf of open source projects :7-Zip, FFmpeg, FreeCAD, VLC, Qt etc.
Commercial use is allowed , Commercial software with closed source requirements needs to pay attention to the way of reference .
The data comes from the Internet
After introducing these common open source License after , We can see that , If you don't consider the details , In general, it is in accordance with “ Looseness ” The order of attributes should be :
MIT>BSD>Apache-2.0>MPL>LGPL>GPL.
Last , What we have to say is Orillusion WebGPU The engine is about to meet you ! After internal discussion , Finally, we decided to choose the most relaxed MIT Protocol as our open source License. The purpose is to let everyone without any concerns , Feel free to use our engine core , Be more creative , Serve more application scenarios , Enrich the open source community , by WebGPU and Web3D Make your own contribution to the development of the field ! I also hope that China can have more excellent developers of underlying engine technology , Create world-class engine products through open source , For the future 3D The scene explosion era provides the underlying basic productivity tools ! We will work together !
Welcome aboard Orillusion The developer community , Accompany us to witness WebGPU The development of , Come and be Orillusion The first batch in the community “ Source ” Residents ! Let's create something valuable together 、 A dynamic 、 Co creation community with temperature ! Long press or Scan the QR code below to add Xiaoou wechat !
Orillusion Committed to building the world's first fully open source based on WebGPU A standard lightweight rendering engine , The goal is to achieve desktop level rendering in the browser , Support super large and complex scenes 3D present . Easy to use , Easy to share , Easy iteration , Easy collaboration 、 The cost is low , Cross platform is our core advantage , We will do for 3D Provide basic engine tools in the era of scene explosion .
In the future, we will continue to bring the most dry goods to the forefront WebGPU Technology is shared with every member of the community , You are also welcome to Orillusion The open source community makes its own contribution . We have always believed , The technology mark of open source community is the most noble pursuit of every technician ! therefore , We respect , We recognize , We are more looking forward to , Join in Orillusion, Let's make progress together !
——Link uncharted, Link to the future world
Long press attention Orillusion The official WeChat , The first time to understand WebGPU Engine movement , Learn development skills , Make it together Web 3D The world !

边栏推荐
- Steam教育对国内大学生的影响力
- 杂七杂八的东东
- haas506 2.0开发教程-高级组件库-modem.voiceCall(仅支持2.2以上版本)
- haas506 2.0开发教程-高级组件库-modem.sim(仅支持2.2以上版本)
- mars3d点线面的绘制和重置
- Docker practice - redis cluster deployment and micro service deployment project
- 云盒子联合深信服,为南京一中打造智慧双模教学资源分享平台
- Leetcode topic resolution single number II
- Set tensorflow1 X to pytorch
- Sklearn classification in sklearn_ Report & accuracy / recall /f1 value
猜你喜欢

QT中的item views与Item widgets控件的用法总结

Functions and basic structure of CPU

Day_01 传智健康项目-项目概述和环境搭建

Illustration Google V8 18: asynchronous programming (I): how does V8 implement micro tasks?

JS to create an array (all elements are objects)

Haas506 2.0 development tutorial - Advanced Component Library -modem SMS (only supports versions above 2.2)

程序员的真实想法 | 每日趣闻

Jour 04 projet de santé mentale - gestion des rendez - vous - gestion des forfaits

CPU的功能和基本结构

项目_过滤器Filter解决中文乱码
随机推荐
Haas 506 2.0 Tutoriel de développement - bibliothèque de composants avancés - modem. SMS (ne prend en charge que les versions supérieures à 2,2)
微信小程序 - 全局监听globalData的某个属性变化,例如监听网络状态切换
RF content learning
Detailed explanation of redis persistence, master-slave and sentry architecture
Coordinate transformation
mysql如何将日期转为数字
2.17 haas506 2.0开发教程-system(仅支持2.2以上版本)
杂七杂八的东东
golang正则regexp包使用-04-使用正则替换(ReplaceAll(),ReplaceAllLiteral(),ReplaceAllFunc())
LeetCode笔记:Weekly Contest 298
Network architecture from Wan to sd-wan edge devices
phpStudy设置301重定向
2.17 haas506 2.0 development tutorial system (only versions above 2.2 are supported)
Day_ 08 smart health project - mobile terminal development - physical examination appointment
Haas506 2.0 development tutorial - Advanced Component Library -modem Voicecall (only supports versions above 2.2)
Easy EDA #学习笔记09# | ESP32-WROOM-32E模组ESP32-DevKitC-V4开发板 一键下载电路
Programmers' real ideas | daily anecdotes
熟练利用切片操作
【踩坑记录】数据库连接未关闭连接,释放资源的坑
CVE-2021-20038