To do this validity, the free and non-free programs have to communicate at arms length, that they can be considered separate works. Two programs do not communicate at arms length if they share any data structures. At a minimum, two programs should run in separate processes. They can communicate over ICP mechanisms. Unfortunately it's not always applicable. If linked statically, the application code must be released also as LGPL or everything that allows the user to re-link the application with a different version of the LGPL source code, have to be provided.
As long the application is linked dynamically to LGPL software, the proprietary code can be kept proprietary. At present, most GNU libraries are covered by the Lesser GPL, and that means we are using only one of these two strategies, neglecting the other. So we are now seeking more libraries to release under the ordinary GPL. Proprietary software developers have the advantage of money; free software developers need to make advantages for each other.
Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it. Using the ordinary GPL is not advantageous for every library. There are reasons that can make it better to use the Lesser GPL in certain cases. The most common case is when a free library's features are readily available for proprietary software through other libraries.
In that case, the library cannot give free software any particular advantage, so it is better to use the Lesser GPL for that library. After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another—no problem for them, only for us.
However, when a library provides a significant unique capability, like GNU Readline, that's a horse of a different color. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility other than as an argument passed when the facility is invoked , then you may convey a copy of the modified version:. The object code form of an Application may incorporate material from a header file that is part of the Library.
You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates ten or fewer lines in length , you do both of the following:. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:.
You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:.
Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
0コメント