The difference between open source license GPL and LGPL

1. Introduction

Many of the software resources we use currently come from the open source world, including open source versions of various software tools and corresponding tool suites, class libraries, etc. However, we also need to fulfill corresponding responsibilities and obligations while using these resources, otherwise even It will constitute infringement to some extent. Next, I will introduce the general GPL and LGPL license agreements. Normally, you can find it in the software license agreement or the txt file in the project appendix.

GPL

GPL is the GNU General Public License (the abbreviation of GNU Public License). It is usually "infectious". When a project uses software parts under the GPL, the project will be "infected" and become If you have a product under the GPL license, that means you need to make it open source and free. To give a simple example: If you are developing a desktop project, but you need to call a visual window control, and this control happens to be a product under the GPL. So unfortunately, your project becomes GPL licensed. When your final project is released, you are obliged and must provide source code based on the entire project.

LGPL

LGPL is the abbreviation of GNU Lesser General Public License (GNU Lesser General Public License), formerly known as GNU Library General Public License (GNU Library General Public License); LGPL allows commercial software to use LGPL class libraries through class library references (links) without The code of open source commercial software is required, which allows the open source code using the LGPL license to be referenced by commercial software as a class library and published and sold, but the premise is that you cannot modify the software part of the LGPL license. Still in the above example, in your case, if we call the window control through dynamic linking, then you do not need to open source your project, but you need to explain the linking part.

Analysis of partial usage of GPL and LGPL

1. If you use GPL/LGPL software in your work, but do not make any modifications to these software, then you have the responsibility and obligation to provide the source code of this part of the project used.

2. For "normal use" of free software (usually a function library) under the terms of the LGPL, the usual understanding is that the function library is always linked in the form of a dynamic link - if it is linked in a static way, the function library becomes your part of the work, thus making your project a derivative work of the library.
Solution: Link the LGPL function library with dynamic linking, provide extension interfaces and program upload interfaces for your products, and publish derivative works under LGPL terms. In the case where static linking is necessary, if your software only calls and connects to the LGPL instead of including it, you can choose to encapsulate this part of the code using the LGPL and make it open source, which will eliminate the need for the rest of the code to be open source.

3. When you directly take out more than 10 lines of source code from the GPL/LGPL license and use it in your own work, no matter how large your work is, it will become a derivative work of the GPL/LGPL software, that is, Provide source code when publishing is required

Developer considerations

open source worker

For developers who are willing to share their development projects with open source and contribute to the free open source world, I call them open source workers, because they enjoy the benefits brought by these two protocols, so they are also very Happy to accept relevant license agreement. (After all, this is for open source)
Everything is for freedom. The open source agreement allows you to directly use the software development results provided by others to build your own project, but in the end, don’t forget that you also need to complete the project in your own project. When sharing your work (usually project source code) with other developers.

Freelance developer

Generally speaking, freelance developers will enjoy the rich resources brought by open source projects, but it needs to be emphasized that it is this group of people who are usually most entangled in the issue of whether to abide by the open source agreement. Here, I think the main thing here is Look at your idea: If you have a very valuable idea, and the implementation of this idea into actual projects will bring relatively large benefits; or in the end, you just want to keep the project private and release it as a closed source, then you'd better Don't choose GPL, choose LGPL carefully (more details will be introduced here).
Of course, if you just enjoy the fun of development and hope to learn and improve yourself, then just use it directly, because the huge resource sharing will make you put it down.

commercial developer

Usually, commercial developers refer to developers who develop commercial applications as a company or team. The projects they develop will be directly linked to interests once they are implemented. Therefore, they generally do not use open source software parts as part of their own projects, and only use the relevant calling licenses of LGPL with caution when they have to cite them.
I would like to add here that at this stage, many small and medium-sized companies in China are not very aware of software copyright. Many developers only know how to immerse themselves in development and find resources to solve problems, thus ignoring the copyright issues caused by finding resources. I even learned that a ten-year-old programmer didn't know the difference between the two protocols (I guess maybe it's because he has never used open source things). But copyright issues are really serious. For example, once your project uses GPL, your competitors have the right to require you to release the source code, and you will lose your competitive advantage in an instant.

Guess you like

Origin blog.csdn.net/zhoqua697/article/details/131531219