This is a licensing question ONLY. It's not meant the be exact legal counsel, except to make the decision at hand, with more confidence than before.
OK. I'll try to ask generally, as I'm not even looking for specifics. If I need to know more specifics, I'll mention that further down.
Let's say you have a library, or what I would call a library. It provides some function to an application or even operating system, where application is the more common. The language is C++. You may have code, that without replacing code in the library, if you remove the library, the code will not work, probably not even compile (and we're also talking about g++ as compiler). For example (fictional example in this case). I don't know off the top of my head whether this will ever be correct or not, or just always fictional.
Code:
...
PNF program("/program.pnf");
program.load();
program.loads2();
program.execute();
Now, the way the library has been currently designed, is to be used like this:
Code:
#include <desLib/deslib.hpp>
...
Perhaps, deslib, contains:
deslib.hpp
Code:
...
#include "classes/PNF.cpp"
PNF.cpp
Code:
#include "PNF.hpp"
PNF::PNF(char * n)
{
name = n;
}
void PNF::load()
{
}
void PNF::loads2()
{
}
void execute()
{
for (;;)
{
cout << "a..." << endl;
}
}
PNF.hpp
Code:
class PNF
{
protected:
char * name;
public:
PNF(char * n);
void load();
void loads2();
void execute();
};
OK. Now we have an example, this is by no means a smart or working program in completeness, but, we have an example...
Now, we put it together as specified above. You try to license the application code, containing main(), as GPLv3 or later. You want the library, containing the means to make it work, to be LGPLv3 or later.
Does this have the effect, of allowing the library, with it's current and stated intended use, to be able to be used in any program, with the lgpl code used however the person wants, including to be used in a non-gpl or lgpl program which is closed source? Or, because of the way it's linked in, must it be used only in GPL or LGPL code?
By the way, I think the thread belongs here, as it's only a license question, I would say.
I'll provide one additional detail: In a case like this, what is wanted, is to allow the program to be used in non-gpl or lgpl places, including commercial programs. It's designed mostly, to be useful to gpl apps, but since it's simply a library, it's desired that it can be used in multiple contexts.
A better understanding of the LGPL is required, in this case for me, and a general, but clear answer would be appreciated. It's a case a lot like bison and flex, when they were created. Regardless of whether I would like most or all software to be exactly free (in FOSS terms), what I'm trying to do, is create some FOSS that has some effect on some new type of license, but I consider it to not quite be proprietory. I want to use traditional FOSS, where I can. It relies on this FOSS, this other type. Both by design and idea. When I was less experienced, I wasn't sure that would work, now I am. But it's just that question that remains in my head. Now if NOT, that it can't be used in the intended way, please provide a general way to call the library to fix that case, but NOT very specific to any one app. Thanks! I hope you understand the question.