Patent open source protocol

Due to the increasing number and influence of CooCox users, CooCox team's attention to software and code protocols has gradually increased. In the process of collecting and sorting, I want to share some summarized information with you.

First of all, we use a fairly intuitive and clear schematic diagram of followers to divide the differences among various protocols: open source license GPL, BSD, MIT, Mozilla, Apache and LGPL.

license.jpeg

The following is a brief introduction to the above protocols:

BSD open source protocol

BSD open source protocol is a protocol that gives users great freedom. Basically, users can "do whatever they want", freely use and modify the source code and redistribute the modified code as open source or proprietary software.

However, the premise of "do whatever you want" When you use the BSD protocol to publish code or develop your own products based on the BSD protocol code, you need to meet three conditions:

If the redistributed product contains source code, the source code must contain the BSD protocol in the original code.

If you only redistribute the binary class library/software, you need to include the BSD protocol in the original code in the document and copyright notice of the class library/software.

You cannot use the name of the author/organization of the open source code and the name of the original product for marketing.

BSD code encourages code enjoyment, but it needs to respect the copyright of the code author. BSD is a protocol friendly to business integration, because it allows users to modify and redistribute codes, and also allows users to use or develop commercial software for distribution and sales on BSD codes. Many companies and enterprises prefer BSD protocol when choosing open source products, because they can completely control the code of these third parties and can modify or redevelop it when necessary.

Apache license 2.0

Apache Licence is a protocol adopted by Apache, a famous non-profit open source organization. Similar to BSD, the protocol also encourages the code to enjoy and respect the copyright of the original author, and also allows the code to be modified and released (as open source or commercial software). The conditions to be met are also similar to BSD:

You need to give the user of the code a copy of the Apache license.

If you modify the code, you need to explain it in the modified file.

In the extended code (the modified code and the code derived from the source code), it is necessary to include the description of the agreement, trademark, patent statement and so on specified by the original author in the original code.

If the redistributed product contains a notification file, an Apache license is required in the notification file. You can add your own license to the notification, but it cannot be displayed as a change to the Apache license.

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

(same as gramsperlitre) g/l

The familiar Linux uses GPL. The GPL protocol is very different from BSD, Apache Licence 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 reference/modification/derivative code, but the modified and derivative code is not allowed to be published and sold as closed source commercial software. This is why we can use all kinds of free linux, including linux of commercial companies and all kinds of free software developed by individuals, organizations and commercial software companies.

The main content of GPL protocol is that as long as a product of GPL protocol is used in a software ("use" refers to class library reference, modified code or derivative code), the software product must also adopt GPL protocol, which is both open source and free. This is the so-called "infectivity". The products of GPL protocol can be used as a single product without any problems, and they can also enjoy the advantage of free.

Because GPL strictly requires that software products using GPL class library must use GPL protocol, it is not suitable for integration/adoption as the basis of class library and secondary development for open source code, commercial software or departments with confidentiality requirements for code using GPL protocol.

Other details, such as the need to attach GPL protocol when redistributing, are similar to BSD/Apache.

LGPL

LGPL is a GPL open source protocol designed mainly for the use of class libraries. Different from the requirements of GPL, any software that uses/modifies/derives the GPL class library must adopt the GPL protocol. LGPL allows commercial software to use the LGPL class library by way of class library reference (link), without the code of open source commercial software. This makes the open source code using LGPL protocol can be referenced, distributed and sold by commercial software as a class library.

However, if the code of the LGPL protocol is modified or derived, all modified codes, extra codes and derived codes involved in the modification part must adopt the LGPL protocol. Therefore, the open source code of LGPL protocol is very suitable to be cited by commercial software as a third-party class library, but it is not suitable for commercial software that wants to carry out secondary development based on LGPL protocol code through modification and derivation.

Both GPL/LGPL protect the intellectual property rights of original authors and prevent others from using open source code to copy and develop similar products.

Massachusetts Institute of Technology (Massachu-Setts Institute of Technology)

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

MasterofPatentLaw

MPL is the abbreviation of Mozilla Public License, which is a software license designed by Netscape Mozilla team for its open source software project at the beginning of 1998. The most important reason for the appearance of MPL license is that Netscape thinks that GPL license does not well balance the developer's demand for source code and the benefits they get from using source code. Compared with the famous GPL license and BSD license, MPL has the same rights and obligations with them in many aspects (because they are all open source software licenses recognized by OSIA). However, compared with MPL, there are several significant differences:

◆ Although MPL requires that the source code published by MPL license be modified, the license of MPL license should be obtained again, so as to ensure that others can enjoy the source code under MPL terms. However, in the MPL license, the definition of "distribution" is "files distributed by source code", which means that MPL allows enterprises to add an interface to their existing source code. Except that the source code of the interface program is licensed externally in the form of MPL license, the source code in the source code library can be forcibly licensed externally without MPL license. All these have left a gap for using other people's source code to develop their own commercial software.

◆ Paragraph 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 its own code to obtain its own software program.

◆ Regarding the attitude towards software patents, MPL license doesn't explicitly object to software patents like GPL license, but it explicitly requires the source code provider not to provide source code that has been protected by patents (unless he is the patentee and licenses these source codes to the public free of charge in writing), nor to apply for patents related to these source codes after being licensed in the form of open source license.

◆ 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 of modifying works, which includes all source programs of all modules, plus the definition of related interfaces, plus the' original' that controls the installation and compilation of executable works, or the source code that is not significantly different from the original source code.

Article 3 of MPL license has special provisions on describing source code modification, that is, all redistributors are required to have a special file to describe the time and method of modifying source code programs.