Open source agreement - comparison of several open source licenses

First of all, various protocols can be divided with a fairly intuitive and clear diagram: the difference between open source licenses

Here are some of the most commonly used open source protocols:

GPL (GNU General Public License): GNU General Public License Agreement

LGPL (GNU Lesser General Public License): GNU Lesser General Public License Agreement

BSD (Berkeley Software Distribution): Berkeley Software Distribution License Agreement

ISC (Internet Systems Consortium): ISC used when releasing software

MIT (Massachusetts Institute of Technology): The name of the MIT License Agreement comes from the Massachusetts Institute of Technology, also known as the "X License Agreement" or "X11 License Agreement"

Apache (Apache License): Apache License Agreement

MPL (Mozilla Public License): Mozilla Public License Agreement

The following is a brief introduction to the above protocol:


GPL

The Linux we are very familiar with adopts the GPL . The GPL agreement is very different from BSD, Apache License and other licenses that encourage code reuse. The starting point of GPL is the open source/free use of code and the open source/free use of quoted/modified/derived code, but the modified and derived code is not allowed to be released and sold as closed-source commercial software. This is why we can use various free linux, including commercial company linux and various free software developed by individuals, organizations, and commercial software companies on linux.

The main content of the GPL agreement is that as long as the product of the GPL agreement is used in a software ("use" refers to class library references, modified codes or derivative codes), the software product must also adopt the GPL agreement, which must be open source and free . This is called "contagion". There is no problem in using a product under the GPL agreement as a separate product, and you can also enjoy the advantage of being free.

Since the GPL strictly requires that software products using the GPL class library must use the GPL agreement, for open source code using the GPL agreement, commercial software or departments that have confidentiality requirements for the code are not suitable for integration/adoption as the basis for class libraries and secondary development .

Other details, such as the need to accompany the GPL agreement when re-released, are similar to BSD/Apache.


LGPL

LGPL is an open source agreement of GPL designed mainly for class library use. It is different from the GPL that requires any software that uses/modifies/derived the GPL class library to adopt the GPL agreement. LGPL allows commercial software to use the LGPL class library through the class library reference (link) without requiring the code of open source commercial software. This enables the open source code using the LGPL agreement to be referenced, published and sold by commercial software as a class library.

However, if the code or derivatives of the LGPL agreement is modified, all modified codes, additional codes and derived codes involving the modified part must adopt the LGPL agreement. Therefore, the open source code of the LGPL protocol is very suitable for being referenced by commercial software as a third-party library, but it is not suitable for commercial software that wants to use the LGPL protocol code as the basis for secondary development through modification and derivatives.

Both GPL/LGPL protect the intellectual property rights of the original author, preventing someone from using open source code to copy and develop similar products

BSD Open Source Protocol
The BSD Open Source Protocol is a protocol that gives users a lot of freedom. Basically, users can "do whatever they want", use it freely, modify the source code, or republish the modified code as open source or proprietary software.

But the premise of "do whatever you want" When you publish code that uses the BSD protocol, or re-develop your own products based on the BSD protocol code, you need to meet three conditions: If the re-released product contains source code,

    then The source code must carry the BSD agreement in the original code.
    If the redistribution is only a binary class library/software, you need to include the BSD agreement in the original code in the class library/software documentation and copyright statement.
    The name of the author/institution of the open source code and the name of the original product cannot be used for marketing.

BSD code encourages code sharing, but needs to respect the copyright of the code author. BSD is a very friendly protocol for commercial integration because it allows users to modify and redistribute the code, and also allows the use or development of commercial software on the BSD code for distribution and sales. And many companies and enterprises prefer the BSD protocol when choosing open source products, because they can completely control these third-party codes, and can modify or re-develop them when necessary.

ISC license

The ISC license is an open source license that is functionally identical to the two-sentence version of the BSD license.
This license was invented by ISC (Internet Systems Consortium) and is used when ISC releases software.
The current version of the ISC License (ISC).


WITH

MIT is a license agreement as broad as BSD, and the author only wants to retain the copyright without any other restrictions. That is, you must include a statement of the original license agreement in your distribution, whether you distribute it as binary or as source code.

Apache Licence 2.0

Apache License is an agreement adopted by the famous non-profit open source organization Apache. This agreement is similar to BSD, which also encourages code sharing and respects the copyright of the original author, and also allows code modification and re-release (as open source or commercial software). The conditions that need to be met are also similar to BSD:

    You need to give the user of the code an Apache License.
    If you modify the code, you need to explain it in the modified file.
    In extended code (both modified and derived from the source code) licenses, trademarks, patent notices, and other descriptions specified by the original author are required to be included in the original code.
    If a Notice file is included in the redistributed product, the Apache License must be included in the Notice file. You can add your own permission to the Notice, but it cannot be expressed as a change to the Apache License.

Apache License is also a license that is friendly to commercial applications. Users can also modify the code when needed to meet their needs and release/sell it as an open source or commercial product.


MPL

MPL is short for The Mozilla Public License, which is a software license designed by Netscape's Mozilla team for its open source software projects in early 1998. The most important reason for the emergence of the MPL license is that Netscape believes that the GPL license does not balance developers' needs for source code and the benefits they obtain from using source code. Compared with the well-known GPL license and BSD license, MPL is the same as them in terms of many rights and obligations (because they are all open source software licenses recognized by OSIA). However, compared to MPL, there are the following significant differences:

◆ Although MPL requires the modification of the source code released under the MPL license, it must be re-licensed in the form of the MPL license to ensure that others can Share source code under the terms of the MPL. However, the definition of "publishing" in the MPL license is "files released in the form of source code", which means that MPL allows an enterprise to add an interface to its existing source code library, except for the source code of the interface program. In addition to the code being licensed externally under the MPL license, the source code in the source code library can be licensed externally without the MPL license. These leave a gap for the behavior of borrowing other people's source code for their own commercial software development.
◆ Clause 7 of Article 3 of the MPL license allows the licensee to mix the source code obtained through the MPL license with other types of codes of its own to obtain its own software program.
◆ The attitude towards software patents. Unlike the GPL license, the MPL license clearly expresses opposition to software patents, but it clearly requires that the source code provider cannot provide the source code protected by the patent (unless he himself is the patentee, and These source codes are freely licensed to the public in writing), nor can they apply for patents related to these source codes after licensing these source codes in the form of open source licenses.
◆ Definition of source code
In the MPL (version 1.1) license, the definition of source code is: "Source code refers to the most preferred form for modifying the work, which includes: all source programs of all modules, plus related interfaces , plus the 'original' (originally 'Script') that governs the installation and compilation of executable works, or source code that is not significantly different from the original source code and is available in the public domain as chosen by contributors to the source code Program code."
◆ Article 3 of the MPL license has a special section on the description of source code modification, which requires all redistributers to have a special file to describe the time and modification of the source code program The method is described.

Guess you like

Origin blog.csdn.net/qq_51588894/article/details/129767306