Differences between open Source licenses GPL, BSD, MIT, Mozilla, Apache and LGPL

Let’s start with a fairly straightforward diagram from someone with a mind: the differences between the open source license GPL, BSD, MIT, Mozilla, Apache, and LGPL

The following is a brief description of the above agreements:

Optional title

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”, modify the source code, and redistribute the modified code as open source or proprietary software.

When you publish code that uses BSD, or re-develop your product based on BSD code, three conditions must be met:

If the source code is included in the redistributed product, it must be included with the BSD protocol from the original code. If only the binary class library/software is distributed again, the BSD protocol in the original code needs to be included in the documentation and copyright notice of the class library/software. Do not use the open source author/organization name and the name of the original product for marketing.Copy the code

BSD code encourages code sharing, but the author’s copyright is respected. BSD is a business-integration-friendly protocol because it allows consumers to modify and redistribute code, as well as to use or develop commercial software distribution and sales on BSD code. Many companies prefer BSD when choosing open source products because they have complete control over third-party code, which can be modified or redeveloped if necessary.

The Apache Licence 2.0

Apache Licence is a protocol adopted by Apache, a well-known non-profit open source organization. This protocol is similar to BSD in that it encourages code sharing and respect for the copyright of the original author, and also allows code to be modified and redistributed (as open source or commercial software). The conditions to be met are similar to those for BSD:

You need to give the user of the code an Apache Licence. If you modify the code, you need to specify in the file to be modified. In extended code (modified and derived from source code) it is necessary to carry the agreements, trademarks, patent claims, and other instructions specified by the original author in the original code. If the product to be released contains a Notice file, the Apache Licence must be included in the Notice file. You may add your own license to the Notice, but this should not be construed as a change to the Apache Licence.Copy the code

Apache Licence is also a business-friendly license. Users can also modify the code as needed and distribute/sell it as an open source or commercial product.

GPL

Linux, with which we are familiar, uses the GPL. The GPL is very different from the BSD, Apache Licence and other licenses that encourage code reuse. The GPL’s intent is to make code open source/free to use and reference/modify/derive code open source/free to use, but does not permit the distribution and sale of modified and derived code as closed source commercial software. That’s why Linux is available for free, including Linux for commercial companies and a wide variety of free software on Linux developed by individuals, organizations, and commercial software companies.

The main content of the GPL is that whenever a product under the GPL is used in a piece of software (” use “means a library reference, modified code, or derived code), that product must also be under the GPL, and must be open source and free. This is called “contagion”. Gpl-licensed products have no problems being used as a separate product and enjoy the advantage of being free.

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

Other details such as GPL will be required for re-distribution, similar to BSD/Apache.

LGPL

LGPL is an open source protocol of the GPL designed primarily for use by class libraries. Unlike the GPL’s requirement that any software that uses/modifies/derivatives of the GPL class libraries be licensed under the GPL. LGPL allows commercial software to use LGPL libraries through library references without the need for open source commercial software code. This allows open source code under the LGPL protocol to be referenced, distributed and sold by commercial software as a class library.

However, if you modify LGPL code or derivative code, all modified code, additional code involving modified parts, and derivative code must adopt the LGPL. Therefore, LGPL open source code is suitable for commercial software to reference as a third-party library, but not for commercial software that wants to use LGPL code as a basis for secondary development through modification and derivation.

The GPL/LGPL protects the intellectual property rights of the original authors, preventing anyone from using open source code to copy and develop similar products

MIT

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

MPL

MPL, short for The Mozilla Public License, is a software License designed by Netscape’s Mozilla team for its open source software project in early 1998. The most important reason for the MPL license was that Netscape felt that the GPL license did not properly balance the needs of developers for the source code with the benefits they could make from it. MPL has many of the same rights and obligations as the well-known GPL and BSD licenses (because they are OSIA certified open source licenses). However, there are several significant differences in MPL:

  • MPL requires that modifications to source code distributed under an MPL license also be sublicensed under an MPL license to ensure that others can share the source code under MPL terms. However, the definition of “distribution” in the MPL license is “source code distribution file.” This means that MPL allows an enterprise to add an interface to its existing source code base. In addition to the source code of the interface program being licensed under the MPL license, The source code in the source code base can be licensed forcibly without an MPL license. This leaves a gap for the practice of borrowing other people’s source code for commercial software development.
  • The MPL License section 3 (7) allows the licensee to create its own software program by mixing the source code obtained under the MPL license with its own other types of code.
  • The MPL license, unlike the GPL license, does not explicitly oppose software patents, but does explicitly require the source code provider not to make available the source code that is already patented (unless he is the patentee and licenses the source code to the public in writing). You cannot patent the source code after you license it under an open source license.
  • The definition of the source code In the MPL (version 1.1) license, the source code is defined as: “the source code refers to the modified work the most priority will pick form, it includes all the modules of all of the source program, and about the definition of the interface, and control the installation of the executable work and compile ‘original’ to ‘Script’), Or source code that is not significantly different from the original source code is program code that is available from the public domain and selected by the source code contributor.”
  • MPL License Section 3 has a special section on the description of source code modification, which requires all redistributors to have a special file describing when and how the source code program is modified.

reference