In the eyes of many people, "open source" is a fashionable and sentimental vocabulary, always accompanied by idealism, so many companies began to label themselves "open source". But an excellent open source project is far more than simply open source code, but needs to be implemented as a company strategy in order to build an unbreakable bridge of trust.
PingCAP has accumulated some experience and lessons from the first line of code open source in the past six years. In the "Open Source Knowledge Popularization" column, we will share and communicate with you our thoughts and feelings in the open source growth path, as well as the correctness of participating in open source projects. posture. The topic of this issue starts with the foundation of open source-open source licenses. I hope it will be helpful for everyone to understand and participate in open source.
In recent years, open source has become more and more popular. We often see "a company announces open source", "an open source conference is held", and "an open source project obtains financing". Individual developers and companies are more willing to participate in the construction and contribution of open source projects than ever before. Open source has gained unprecedented popularity in the domestic IT field and has also received extensive attention from the industry and investment circles.
But when some people hear the term open source, they mistakenly think that "open source software is free, so I can use it freely without restriction." At the beginning of the birth of open source, free software was the mainstream term at the time. Looking back on the development history of open source, a very big leap has been achieved from free software to the open source movement. The former is more a spiritual advocacy, while the latter focuses on software. The collaboration and openness of the open source, so there will be very strict rules and restrictions on open source licenses. Open source software can reach the level of development it is today because of such a set of rules and systems that comply with the spirit of open source, and it can develop healthily. One of the carriers of the open source spirit is the open source license. Today we will take a look at the relationship between open source license and open source, and the problems reflected behind it.
What is an open source license? ("Open Source License")
First of all, it needs to be clear that the copyright of open source software source code has neither been abandoned nor expired, and its modification and distribution are still subject to copyright laws or open source software licenses.
The open source software we come into contact generally has a corresponding open source license (Open Source License) that restricts the use, copying, modification, and redistribution of the software. Licenses are authorization terms, and open source licenses are legal documents that guarantee these restrictions on open source software. The purpose is to regulate the use or distribution of copyrighted software. Open source licenses are the foundation of the open source software ecosystem and can promote the collaborative development of software.
Common open source licenses
Common open source licenses mainly include Apache, MIT, BSD, GPL, LGPL, MPL, SSPL, etc., which can be roughly divided into two categories: Permissive free software license ("Permissive free software licence") and authorship license ( "Copyleft license").
Permissive free software licence is a type of free software license agreement with minimum restrictions on the use, modification, and dissemination of software. This type of software license agreement will not guarantee that the derivative works of the original work will continue to maintain the same relevant restrictions as the original work, thereby providing greater space for the free use, modification and dissemination of the original work.
The Copyleft License is the free use, modification and dissemination in a limited space, and must not violate the restrictions of the original work. If a piece of software uses a copyleft type license agreement that stipulates that the software must not be used for commercial purposes and must not be closed source, then the subsequent derivative sub-software must also comply with this clause.
The biggest difference between the two is that when the software is modified and redistributed, the Copyleft License still requires the open source code (derivative software needs to be open source), while the Permissive free software licence does not require the open source code (derivative software can become proprietary software) ).
Among them, Apache, MIT, and BSD are all loose licenses, GPL is a typical copyleft license, and LGPL and MPL are weak copyleft licenses. SSPL is a new license created by MongoDB in recent years, and there is considerable controversy. The Open Source Promotion Association OSI even believes that SSPL is not an open source license agreement.
In addition, there is another category is Creative Commons (CC) knowledge sharing agreement. Strictly speaking, this agreement cannot be said to be a true open source agreement. Most of them are used in design projects. There are many types of CC agreements, each of which authorizes specific rights. Most of the stricter CC agreements will state the "right of authorship, non-commercial use, no derivative" clause, which means you can freely share this work, but you cannot change it and charge for it, and you must declare the ownership of the work. . This license agreement is very useful. It allows your work to be distributed, but it also retains partial or complete control over the use of the work. The least restrictive type of CC agreement is the “signature” agreement, which means that as long as people can maintain your reputation, they can use your work whatever they want.
Source: https://moqod.com/mobile-web-software-development/
As you can see, the difference between different licenses is very big, you may be confused, what is the purpose of making it so complicated?
This has to start with the history of open source.
The term open source originally meant open source software (OSS). Open source software is computer software whose source code can be obtained arbitrarily, and anyone can view, modify, and distribute the code they deem appropriate. In the open source field, there are two camps: FSF (Free Software Foundation) and OSI (Open Source Initiative). They have different ideas about open source.
FSF is an important open source software foundation (1985/10/04) founded by the open source leader RMS. The FSF was founded mainly to raise funds to build the GNU kernel Hurd project and tool chain. Although the GNU project itself has not been completed, the A large number of software tools created in the process will become an important part of GNU/Linux in the future. In order to implement RMS's understanding of "free" and "open source", FSF established the first "copyleft" license in the open source field-GPL (GNU Public License).
OSI was established in 1998 by Bruce Perens and Eric S. Raymond (ESR), the leaders of the open source industry. The purpose is to seek more change in the fierce conflict between fundamentalist open source (the earliest initiators and promoters of open source movement) and the software industry/business. Balanced system and governance mechanism. There are about 80 licenses approved by the OSI organization, including Apache License v2, GPL v2, MIT/BSD, etc.
FSF and OSI are non-profit organizations that promote and maintain open source order. They maintain the definition of "open source" and the submission, discussion and review of major open source software agreements. As long as the clauses are approved and conform to the definition of open source code, they can be called open source license clauses. The software authorized to distribute under the open source clauses is open source software. If a commercial product contains open source software, its The packaging can be marked with the certification mark of the Open Source Promotion Association. Consumers who know this mark can know that open source software is used in the product, and then purchase the product because of the unique advantages of open source software.
Below, we use a table to briefly understand the differences between common open source licenses:
Source: https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
Among them, the Apache License (Apache License) license is a free software license issued by the Apache Software Foundation, originally written for the Apache http server. The latest version of this license is "Version 2", which was released in January 2004. The Apache license encourages code sharing and the copyright of the ultimate original author, allowing source code modification and redistribution. However, the following conditions need to be observed:
Need to give the user of the code an Apache Licence;
If the code is modified, it needs to be explained in the modified file;
In the derived code (modified and derived code from the source code), the agreement, trademark, patent statement and other instructions required by the original author must be included in the original code;
If the re-released product contains a Notice file, the Apache Licence must be included in the Notice file. You can add your own license in the Notice, but it cannot be expressed as a change to the Apache Licence;
Apache Licence is also a commercial application-friendly license. Users can also modify the code when needed to meet and release/sell as an open source or commercial product.
For example, in an open source project using the Apache license, the downstream Fork company not only did not give back to the upstream open source project, but instead changed the derived code to the SSPL Licence, which is not recognized by OSI, and separately announced it as a new open source project, misleading Many people who don't know the truth think that a new open source project has emerged. But this behavior has actually caused an infringement on the legitimate rights and interests of the original open source project, and it also violated the spirit of open source.
As an open source basic software company that has used open source as the basis for its development from the very first day, PingCAP clearly opposes some behaviors that “violate the spirit of open source and break the rules of the game” in the field of open source software.
PingCAP’s current open source projects include TiDB, TiKV and Chaos Mesh®, which are all developed and operated based on the Apache 2.0 protocol. Any individual, company, or cloud vendor can freely go as long as they do not violate the relevant provisions of the Apache 2.0 protocol. Download, study, rewrite, compile the original code, and even publish your own release version for corresponding commercial activities.
When PingCAP was designing this company, it was preparing for the design of continuous contributions to open source. For example, in the open source governance system, we consider ourselves to be part of the open source technology system, and set up a dedicated team to continue operating the open source community.
In the open source technology system, the open source community is the upstream source of the entire new technology innovation and the incubator of innovative technology. The open source community continues to promote various open source projects and achieve rapid product iteration through global collaboration. Through this source of innovation, innovative technologies can be continuously "produced" through global community collaboration. The open source community has actually become an innovation engine for new technologies.
In the just released "Research Report on the Maturity of Open Source Community" 2.0, the TiDB community is regarded as a model of open source community operation and governance practices as the research object, exploring the healthy and sustainable development of the open source community. The report also put forward the open source community maturity model and open source community measurement system for the first time. Students interested in open source can click on the original link to download.
As a member of the open source ecosystem, we welcome anyone to participate in the open source business and prosper the open source field together. Open source is a hard-won situation today. It requires all participants to maintain it together, respect the rules of the game, and abide by the spirit of open source to create open source. A better tomorrow.
attached:
common open source license introduction:
Apache : The Apache License (Apache License) is a free software license issued by the Apache Software Foundation, originally written for the Apache http server. The Apache license requires the licensee to retain the copyright and waiver of rights, but it is not an anti-copyright license. The latest version of this license is "Version 2", which was released in January 2004. The Apache license is permissive because it does not force derivative and modified works to be released under the same license.
MIT: The name of MIT license comes from Massachusetts Institute of Technology (Massachusetts Institute of Technology, MIT), also known as "X Clause" (X License) or "X11 Clause" (X11 License). The content of MIT is quite similar to the content of the 3-clause BSD license, but it gives the software licensee greater rights and fewer restrictions. There are many groups that use the MIT license. For example, the famous ssh connection software PuTTY and X Window System (X11) are examples. Expat, Mono development platform library, Ruby on Rails, Lua 5.0 onwards, etc. also use MIT license terms.
BSD : The BSD license agreement (Berkeley Software Distribution license) is one of the most widely used license agreements in free software. BSD is released under this license, hence the name BSD License Agreement. The original owner of the BSD package was the board of directors of the University of California, because BSD originated from the University of California, Berkeley. After the start of BSD, the BSD license agreement was amended, making many future variants of BSD adopt similar style clauses. Compared with other terms, from the GNU General Public License (GPL) to the heavily restricted copyright (Copyright), the BSD license is relatively loose, and even closer to the public domain (Public Domain). In fact, the BSD license is considered copycenter (intermediate copyright), between the standard copyright and GPL copyleft. "Take it down to the copy center and make as many copies as you want". It can be said that the GPL forces subsequent versions to be free software, and subsequent versions of BSD can choose to continue to be BSD or other free software terms or closed source software, etc.
GPL : GPL agreement is very different from BSD, Apache Licence and other licenses that encourage code reuse. The starting point of the GPL is the open source/free use of code and the open source/free use of reference/modification/derivative code, but the revised and derivative code is not allowed to be released and sold as closed-source commercial software. Since GPL strictly requires that software products that use GPL class libraries must use GPL agreement, open source code using GPL agreement, commercial software or departments that require confidentiality of the code are not suitable for integration/adopting this as a class library and secondary development Base.
LGPL : LGPL is an open source agreement of the GPL designed mainly for the use of class libraries. It is different from the GPL requirement that any software that uses/modifies/derives from the GPL library must adopt the GPL agreement. LGPL allows commercial software to use LGPL class libraries through class library links without the need for open source commercial software codes. This allows the open source code under the LGPL agreement to be referenced, published and sold by commercial software as a class library. However, if the code that adopts the LGPL agreement is modified or derived, all the modified code, the additional code involving the modified part and the derived code must adopt the LGPL agreement. Therefore, the open source code that adopts the LGPL agreement is very suitable as a third-party class library to be cited by commercial software, but it is not suitable for the use of commercial software that wants to use the LGPL agreement code as the basis for secondary development through modification and derivation.
SSPL : SSPL is a source-available license created by MongoDB to reflect the principle of open source and at the same time provide protection to prevent public cloud providers from providing open source works as services without giving back to this open source work. SSPL allows free and unrestricted use and modification of open source works, but if you provide this open source work as a service to others, you must also publicly release any modifications and management's source code under the SSPL. OSI, the Open Source Promotion Association, is quite critical of SSPL. It believes that SSPL is not an open source license agreement, but is actually a license for which the source code is available.
Elastic License : Elastic License is a non-commercial license. The core clause is that if the product is used as a SaaS, a commercial license is required.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。