I'd like to license some code in a way that's less viral than GPL, but still copyleft. I can't and don't want to use GPL since I use some libraries which are basically open source, but incompatible with the GPL.
I thought about using LGPL or MPL/CDDL. The problem with these is that they are trivial to circumvent.
For one these licenses don't work for programs which are made available via a webserver and not conventionally distributed. Afaik the AGPL prevents this, but is as viral as the GPL.
Additionally the LGPL can be circumvented by just putting it in a new dll and use delegates or interfaces to call it from the LGPLed sourcecode.
Needs to be compatible with the libraries I use which are licensed as LGPL v2, Ms-PL and new BSD. Compatibility with GPL is not required.
So now I'm torn between choosing a shared-source license(like the MS Reference License) and allow modified versions on a case by case basis, or a non copyleft license and ask the users to contribute back their changes trusting their honor instead of a legally binding license.
But I'd prefer a real opensource license which requires copyleft, isn't trivially circumventable and less viral than the GPL. Does anybody know such a license or do I have to resort to one of the workarounds?
edit: Does the GPL with classpath exception do what I want?
edit2:
My work is mainly an application. But due to modularity most of the code, in particular the domain model, is in libraries.
If code which builds on my code is forced to be open source I have no problem with that.
But I don't want to prevent their code(and my own code) from using independent libraries with a different(including closed source) license.
So perhaps what I want is some kind of uni-directional GPL.