LGPL / GPL licensing

I have a commercial web application that uses a component under LGPL. Since this component has a built-in architecture, I have now created a fork for this component that uses the library (LGPL). This library uses a data source, which is the GPL.

Does this mean that I have to free the source for my web application? or just need to free the source to connect?

Thanks for any input and advice, and forgive me for my poor English.

+7
licensing gpl lgpl
source share
4 answers

To be 100% sure, you should read the FAQ and then contact a lawyer familiar with software licensing. Do not speak with lawyers who are not due to tell you not to use anything for free / openource just to be safe, which everyone can say.

In any case, what do you mean by a β€œdata source that is a GPL”? Is the GPL source code in your application?

The FAQ often questions about the plug-in and the GPL.

Can I release a proprietary program that is designed to load a GPL coverage plugin?

It depends on how the program calls its plugins. For example, if a program uses only a simple plug and exec call and communicate with plugins, then plugins are separate programs, therefore the license plugin does not require any requirements for the main program.

If a program dynamically binds plugins, and they perform function calls to each other and share data structures, we believe that they form a single program, which should be considered an extension of both the main program and plugins. In order to use GPL-covered plugins, the main program must be released under the GPL or GPL-compatible free software license, and that the GPL conditions must be observed when the main program is distributed for use with these plugins.

If a program dynamically binds plugins, but the connection between them is limited for calling the plugin’s main function with some options and waiting for it to return, this is a borderline case.

Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic layout.

As others have noted, web applications that are not distributed are considered private use under the simple GPL (not in the Affero GPL?).

The company runs a modified version of the GPL program on the Internet site. Does the GPL say they should release their modified sources?

The GPL allows any user to modify the version and use it without extending it to others. Part of this is what this company does. Therefore, the company should not release modified sources.

It’s important for people to have the freedom to make changes and use them privately without publishing these changes. However, hosting a program on a server machine to communicate with the public is unlikely to use "private", so it would be legal to require the release of the source code in this special case. Developers who want to solve this problem may want to use the GNU Affero GPL for programs designed for use on a network server.

+10
source share

Does this mean that I have to free the source for my web application?

Not *

or just need to free the source for the plug-in?

If you are distributing the application, then yes, you must also distribute the source code for the LGPL part.

You also need to make sure that anyone who receives your application will have the opportunity to change it. This is important for compiled applications - you will need to include the necessary object files so that your application can be re-linked to the modified version of the LGPL code. Or use dynamic linking. The idea is that people should be able to modify the part of your code, which is LGPL, and re-combine it with your application.

Here are some of the LGPL requirements in my words (I'm not a lawyer):

  • There should be some clear separation between the LGPL code and the other code. In particular, the recipient should be able to modify the LGPL code or even completely replace it with another code, such as a modified version or a later version of the library. Therefore, if it is a compiled program, then the LGPL code must be either dynamically linked (for example, a separate DLL or a common file) so that it can be easily replaced for a similar library and still be compatible; or, if it is statically linked, the minimum required source files and / or object files must be provided in order to allow recompilation with an alternative library. The non-LGPL part may not contain any part of the LGPL code, except for very simple header files.
  • You must clearly indicate how much code the LGPL covers, including its initial copyright notice and the text of the LGPL (including the GPL on which it is based).
  • If the integrated software displays copyright notices in the course of work, then a copyright notice should also appear here for the part covered by LGPL, as well as a link to LGPL and GPL.
  • In some cases, you may need to provide installation information detailing the use of a modified version of the LGPLd code in a combination application.

These were just some of the limitations, but LGPL also offers you a number of freedoms that other licenses, such as the GPL, do not have. If you distribute the combined work, which includes another LGPL license code:

  • You do not need to release source code for the rest of your application (i.e., a part other than LGPL). The only exception to this, as described above, if all of it is statically linked, you need to provide enough code (and / or object files) to be able to re-link it with an alternative or modified version of the LGPL code. If you dynamically bind and interact with the regular API, you do not need to worry about that.
  • You do not need to free the rest of your application under the GPL. You can use any license you have, including more restrictive, patented licenses, provided that you follow the rules when distributing it.
  • Unlike the GPL version 3, which prohibits the use of code when implementing copy protection or DRM software, you can use the LGPL version 3 license code in an application that includes copy protection or DRM.

I recently wrote an analysis of the actual text of the LGPL . It is not too long.

* You mentioned that the library you use has a GPL data source. Presumably, this means that you will not actually distribute this GPL data with it, namely the LGPL library that uses it.

+6
source share

I am not a lawyer, but ... until you distribute the program (make it available for use, since the web application is not a distribution), you do not need to allocate a source for anything.

+1
source share

If a web application means that you simply run the software on your server and do not distribute it to your users, then it should be simple. No distribution, no need to give the source.

(may differ with GPL3)

+1
source share

All Articles