当前位置:网站首页>There is an Oolong incident in open source. Maybe you don't know these five open source protocols
There is an Oolong incident in open source. Maybe you don't know these five open source protocols
2022-07-26 20:08:00 【biyusr】
Preface
This has to come from Huawei The Wulong incident Speaking of .
19 year 8 month 31 When no. , Huawei has opened the ark compiler on its official website . The ark compiler is powerful , I'm sure you've heard about it !

At that time, the Huawei developer conference was overcrowded , Screen swiping circle of friends , Therefore, the open source of Huawei ark compiler has been IT Unprecedented attention in the world . At this critical moment of world attention , Huawei made a little trouble “ Wulong ”.
Ark compiler is open source 3 Minutes later, access was closed , The reason is that someone found that Huawei will zlib The copyright notice information of has been modified to Huawei . The following figure is from Zhihu netizens @ Taciturn disclosure .

because zlib Third party open source software , According to the open source protocol it uses , To use and modify it, you need to retain the copyright notice information . Because of this little mistake , Huawei suffered a lot of over interpretation from We Media , All kinds of cynicism , Even maliciously smear Huawei for blatant plagiarism and so on . Huawei has to open source 3 Minutes later, access was turned off , Open source again after correction and troubleshooting .
This is a small one of Huawei “ fault ”, But there is absolutely no need to over interpret . Because an existing project is open source , Be sure to sort out the format first , Including coding specifications 、 Copyright notice 、 Code comments, etc .
Clearly tell you that this is a third-party code , also zlib Of readme Keep the file intact , Yes zlib The author of 、 The copyright is clearly explained .
What is a license agreement ?
Although this matter is irrelevant , But some authors involved in open source projects should feel the same , My project was copied , Not even a name , Also packaged as their own !
There are a lot of things , That's too much , I can't remember how many times it happened !
What is a license , When you license your product , You're selling your rights , however , You still have copyright and patents ( If you apply ), The purpose of the license is , Provide... To the people who use your product A certain amount of authority .
And the open source license makes these things easy , It's easy for developers to contribute their code to a project , It also protects the identity of your original author , Make you At least get recognition , An open source license also prevents others from taking possession of a product .
There are many open source protocols in existence today , And pass by Open Source Initiative Open source agreements approved by the organization currently have 58 Kind of (http://www.opensource.org/licenses /alphabetical). We are in common open source protocols such as BSD, GPL, LGPL,MIT Are all OSI Approved agreement . If you want to open your own code , It's best to choose these approved open source protocols .
You should know these five open source protocols
Currently, the popular open source licenses mainly include :BSD、MIT、GNU GPL、Apache and MPL, Here is a brief introduction .

1.BSD
Open source licenses (original BSD license、FreeBSD license、Original BSD license)
BSD Open source protocol is a protocol that gives users a lot of freedom . Basically, users can ” Do as one pleases ”, Free to use , Modify the source code , The modified code can also be redistributed as open source or proprietary software .
” Do as one pleases ” The premise when you publish using BSD The code of the protocol , Or with BSD Protocol code for the second development of their own products , There are three conditions that need to be met :
If the redistributed product contains source code , In the source code, you must have the BSD agreement .
If only binary class libraries are released again / Software , It needs to be in the class library / The documentation and copyright notice of the software contain BSD agreement .
Don't use open source authors / The name of the organization and the name of the original product for marketing .
BSD Code encourages code sharing , But we need to respect the copyright of the coder .BSD Because it allows users to modify and redistribute code , It is also allowed to use or in BSD Develop commercial software release and sales on code .
So it's right Business integration is a very friendly protocol .
2.MIT
Full name MIT license. The loosest statement , Just include the original copyright notice , Whatever else .
The software and its related documentation are free to all , It can be disposed of at will , Including the use of , Copy , modify , Merge , publish , distribution , Re authorize , Or selling . The only limitation is , The above version must be included in the software Rights and license notice . You can :
You are free to use , Copy , modify , Can be used for their own projects .
It can be distributed free of charge or used for profit .
The only restriction is that the license statement must be included .MIT The agreement is the loosest of all open source licenses , In addition to having to include a license statement , No more restrictions .
3.Apache
Apache agreement 2.0 Compared with other open source protocols , In addition to providing copyright license for users , And patent licensing , For those developers involved in patent content , The agreement is most suitable for ( Here you are An article expounds this problem ).
Apache The agreement also has the following points to explain :
Permanent rights Once authorized , Have forever .
Rights on a global scale Get authorization in a country , For all countries . If you're in America , The license is authorized from India , No problem .
Licensing is free , And no royalty In the early , There's no later charge .
Authorization is not exclusive Anyone can be authorized * Authorization is not revocable Once authorized , No one can cancel . such as , You developed a derivative based on the product code , You don't have to worry about being banned from using the code one day .
There are some requirements in terms of distribution code , Mainly , In the statement, recognize those involved in the development and include a copy of the original license agreement .
4.MPL
Full name Mozilla Public License 2.0 .
The modified version must retain its original copyright notice . If the compiled executable is released , Then you must let the other party get MPL The source code of the program under the agreement .
MPL You can add an interface to your source code base , Except for the source code of the interface program MPL The form of license is external License , The source code in the source code base does not need to be forced to be external
MPL The licensee is allowed to mix the obtained source code with its own code to obtain its own software program
MPL No objection to software patents , However, the author of the source code is required not to provide the code that has been patented ( Unless I am the patentee , And the book is authorized to the public ), You can't apply for relevant patents after these source codes are open source licensed .
All redistributors must have a special file that describes when and how to modify the source code
5.GNU GPL
GNU General Public Licence (GPL) It is probably the most commonly used licensing model in the open source community .GPL Guarantee the rights of all developers , At the same time, it provides enough replication for users , distribution , The right to modify :
Free to copy You can copy the software to your computer , Your client's computer , Or anywhere . There is no limit to the number of copies .
Free distribution Provide downloads on your website , copy to U Disk delivery , Or print out the source code and throw it out the window ( For environmental protection , Please don't do that ).
Can be used to make a profit You can charge when you distribute the software , But you must provide the software to your customers before charging GNU GPL license agreement , So that they know , They can get the software for free from other sources , And why you charge .
Freely modifiable If you want to add or remove a feature , That's all right. , If you want to use part of the code in other projects , Also no problem , The only requirement is , Projects that use this code must also use GPL agreement .
边栏推荐
- 【Pytorch进阶】pytorch模型的保存与使用
- 【Pytorch基础】torch.stack()函数解析
- 【OBS】解决OBS推两个rtmp流 + 带时间戳问题
- 【机器学习】变量间的相关性分析
- 移动端video兼容你需要知道的几点
- TableWidget
- Linux regularly backs up the database and deletes the data n days ago
- [Android] the black technology behind kotlin's rapid compilation. Learn about it~
- C# 客户端程序调用外部程序的3种实现方法
- Kingbases SQL language reference manual of Jincang database (14. SQL statement: commit to create language)
猜你喜欢

几张图帮你捋清“中国金融机构体系”

使用请求头认证来测试需要授权的 API 接口

【JVM 系列】JVM 调优

Leetcode daily practice - 26. Delete duplicates in an ordered array

N圆最密堆积、最小外接正方形的matlab求解(二维、三维等圆Packing 问题)

银行业概览

Digital transformation of enterprises has become a general trend, and it is important to choose the right online collaboration tools

试用了多款报表工具,终于找到了基于.Net 6开发的一个了

操作系统常见面试题目总结,含答案

福建争抢VC/PE
随机推荐
Leetcode daily practice - 27. Remove elements
【Android】Kotlin 快速编译背后的黑科技,了解一下~
Solution to the third game of 2022 Niuke multi school league
Kingbasees SQL language reference manual of Jincang database (19. SQL statement: drop table to load)
Kingbases SQL language reference manual of Jincang database (15. SQL statement: create materialized view to create schema)
Zhongtian steel uses tdengine in GPS and AIS scheduling
Codeforces Round #810 (Div. 2)(A~C)
【shell】转载:批量替换 find awk sed xargs
Jincang database kingbasees SQL language reference manual (18. SQL statement: drop materialized view to drop synonym)
金仓数据库 KingbaseES SQL 语言参考手册 (16. SQL语句: CREATE SEQUENCE 到 DELETE)
2022年下半年(软考高级)信息系统项目管理师报名条件
银行业概览
使用请求头认证来测试需要授权的 API 接口
Bug feedback: synchronization failed
DOM case: 10 second countdown - write jump page related knowledge
【Pytorch进阶】pytorch模型的保存与使用
安全团队:近期Windows版Coremail邮件客户端存在RCE漏洞,可能导致钱包私钥泄露
如何同步等待多个异步 task 的返回结果 ?
Codeforces Round #810 (Div. 2)(A~C)
Vite 配置 Eslint 规范代码