Patrik Stridvall ps@leissner.se writes:
So what you basicly saying is that a Crypto API that is a
part of ADVAPI32
can't call ADVAPI32 functions but a Crypto API in say CRYTPO32 can.
Isn't that quite an absurd state to make? Or rather the
perfect illustration
of the absurdities of LGPL.
No, I think it makes perfect sense. If your code is sufficiently independent that it can be put in a separate library, then the LGPL gives you the right to release it under another license. But in order to do that, you have to demonstrate that the code is really as independent as you claim it to be; and requiring you to put it in a separate library is the best way to ensure that.
Somehow I guess you would say that. OK, so now are down to independence.
So independence is an issue of whether something is on either side of an artifical barrier in this cases the DLL boundary?
Note that you your condition: "If your code is sufficiently independent that it can be put in a separate library" can always be fullfilled with a little trickery.
For example: void CryptFoo() { CRYPT32_CryptFoo(); }
and release the code above under the LGPL.
Note that we now return to the doctrine of derived work for nothing except for it can ever make this illegal.
You known, no matter how much you may disagree with the FSF or their license, they are not a bunch of idiots. They have been through this long before you, and have spent a lot of time (and lawyers) to make sure that it worked as they wanted. You can certainly find minor issues and border cases, but the LGPL is not the useless crap you seem to think it is.
They had a goal and I'm sure a lot of competent people did the best they could be accieve it.
However, you can do the impossible no matter how hard you try.