Secondly, I guess your main question is _ _ license _ =' gplv3'. GPL V3 is an open source protocol. In fact, it is the third edition of GPL protocol, and what is marked here is also the protocol type of this code. If future generations use it, this code must also comply with the GPL V3 protocol. Regarding the details of this agreement, because Baidu is not allowed to send links, I copied the net text:
In the past ten years, one of the most amazing changes in software development practice is the construction of "composite" software system-a combination of self-produced, open source and third-party components, which enables development teams to deliver advanced and comprehensive solutions quickly. However, the irregular use of open source and third-party components increases the risk. This method is likely to infringe intellectual property rights, generate unknown franchise obligations, increase maintenance costs and introduce unconfirmed security loopholes.
In this article, I will introduce the background of the complexity problems caused by the creation of composite software systems, and explain how the latest version of the General Public License (GPLv3) affects development governance in many important areas.
background
Open source software is an excellent resource because it allows developers to reuse existing code to meet specific requirements instead of writing new software from scratch. There is an additional benefit that open source components that can meet the needs of users and developers will continue to survive, and over time, existing codes will be continuously reviewed and improved by many different people. Gradually, the developed software will evolve into less bugs, more useful and more robust.
Open source code has been developed in many open source projects. At the time of writing this article, there are more than 180000 independent open source projects (although not all of them are active), and more open source projects are produced every day. By definition, open source code is * * *. Therefore, open source projects are generally stored on the publicly accessible Web (although the original code is shared by tape and bulletin board system, sometimes it can be obtained from other sources, such as books). Many websites have open source projects. My company, Black Duck Software, has identified more than 3,000 download sites, including more than 485 million open source files.
Since June 5438+ 10, 2006, the biggest controversy in the field of open source software licensing has been around the formulation of GNU General Public License (GPL) v3. GPLv2 published by 199 1 is one of the most well-known and widely used licenses to regulate open source code. It is used in Linux kernel and many other widely used open source projects. Globally, GPLv2 has influenced thousands of companies and their application development teams, and they regard the code of GPL specification as a part of their products. The basic right and interest of GPL is that anyone can use, modify and redistribute the code specified in the license. Agree that 1) any distribution copy contains a copy of the license, and 2) all source codes of derivative products can be obtained free of charge.
How does Version 3 extend the application scope of GPL?
After several months' formulation, GNU General Public License Version 3 (GPLv3) was officially released by FSF Free Software Foundation on June 29th, 2007. The terminology of GPLv3 is similar to GPLv2, but it extends the application scope of GPL, and even goes deep into the fields of patent and digital rights management. GPLv3 contains provisions that affect software development in four key aspects (mutual benefit, digital rights management, patent and license compatibility). The following is a brief overview of these terms:
Reciprocal rights and interests (derivative products)
Like GPLv2, GPLv3 is a reciprocal license. This means that if an application adds code controlled by GPL, or uses a product based on GPL controlled code, and the resulting application is used for distribution, it must be distributed under GPL. GPL itself stipulates that any distribution copy must include its source code and GPL license copy. For many years, under the premise of software, there has been considerable controversy about the meaning of the terms "based product" or "derivative product". For example, the Free Software Foundation believes that dynamically linking files can also produce derivative products. So in their worldview, even if you link your proprietary code to a. DLL file supervised by GPL or other * * * libraries, you must force the public release of the source code. This explanation undoubtedly makes development organizations cautious about using GPL-licensed code as part of the development process.
GPLv3 increases the transparency of the problem of derivatives. For example, GPLv3 stipulates that if a program is "specially designed" to use a library managed by GPL, then the library is regarded as a part of the whole product, and the whole application is managed by GPL. However, if the GPL library can be completely replaced by another library (that is, if the application is not "specially designed" to use the GPL library), then the library is not part of the overall product and is not subject to the license.
Digital Rights Management (Embedded Device)
Digital Rights Management (DRM) describes a technical method by which publishers of consumer devices can prevent users from deploying tampered codes to devices. FSF wants to define the meaning of DRM, at least for code involving GPLv3. To this end, GPLv3 contains the following contents: First, the license prohibits GPLv3 itself from being used as a part of DRM. Secondly, FSF added a clause to ensure that any user can modify the GPLv3 code installed on the consumer device and reload the modified code version on the device. In addition to the obligation to provide source code under GPLv3, the license also requires the publisher to provide all installation information required to reload the modified code on the applicable device. Although there are some inherent limitations, the DRM clause of GPLv3 will naturally benefit the manufacturers and publishers of consumer devices, because once they use GPLv3 code, they will fulfill their corresponding obligations and get a relaxed policy.
Patent (redistribution code)
The new license provides a guide to patent obligations applicable to developed code. GPLv3 contains a wide range of express patent licenses. Simply put, this means that if a developer modifies the GPL code and redistributes it, the developer will automatically grant patent licenses to all patents that may be applied to the whole application. Any derivative product benefits from this patent license. In this way, FSF tries to ensure that users have extensive patent rights for any modified GPL supervision code. GPLv3 also contains a "patent protection" clause, which means that if a user of a GPL code makes any patent claims based on the code, the user will lose the GPL license of the code under the GPL.
License compatibility (multiple license issues)
GPL version 3 is not intended to replace version 2. They will coexist, so open source projects can choose to publish their code under any licensed version. Most of the codes under GPLv2 can be converted into GPLv3 by users (this is a convention usually allowed under GPLv2). However, some projects-most notably the Linux kernel-have not been released under a licensed version that contains this right. These projects are not going to publish their projects under GPLv3.
Other license compatibility clauses of GPLv3 also need to be treated with caution. The new license gives developers the right to add some specified additional terms to the license, thus making their code compatible with other open source licenses. Developers have been applying for this right, and now, for example, by adding the required clauses in their own version of GPLv3, they can combine the code controlled by the popular Apache license with the code written under GPL. If organizations release GPLv3 code, they will need to understand those additional conditions.
Finally, GPLv3 includes a language that allows developers to combine GPLv3 code with the code covered by the Affero license. Affero license eliminates a "vulnerability" found by developers in GPL, that is, if the application is web-based (for example, in a web-based search engine, and so on). ), GPL requires developers to release "vulnerabilities" caused by source code. Although this condition does not exist in the text of GPLv3, developers can combine the code of GPLv3 with Affero code, and the Affero clause will apply to the whole product.
conclusion
For application development teams that collect and reuse heterogeneous code, the complexity of GPLv3 license illustrates the necessity of code component management and supervision. With these latest changes in GPL, application developers, managers and their legal advisers must study the impact of these changes and decide how best to include GPLv3-based code in their projects.