I have a project that creates thumbnails for a video file, it is heavily based off interop definitions in directshow.net.
At the moment media browser is GPL so everything is compatible and I’m all good to have cut and pasted this code (since its all attributed properly).
But… I’m looking at including this code in a derivative MIT licensed project. Which leaves me in a bit of a spot.
Directshow.net is licensed under LGPL which means I could depend on that DLL. But … I can not really include the code under the less restrictive license.
The files in question are interop definitions which can easily/tediously be defined by reading through MSDN and translating stuff to C#, if I did this manually I would most likely arrive at the same code (or something incredibly similar).
Where do I stand here? How do I get this functionality into my MIT licensed project?
Related: http://sourceforge.net/forum/forum.php?thread_id=3040125&forum_id=460697
Take all the code and make it into a DLL, and you’re fine. Under the terms of the LGPL, you’re allowed to link to it as a shared library from any project you want; only the LGPL DLL itself is covered by the licensing requirement. It would have to be LGPL, but the rest of your project wouldn’t.
Things get a bit hairier if you want to statically link the library’s code into your executable. The point of the LGPL is that the end-user must have the freedom to modify (and particularly to upgrade) the library’s functionality on their own initiative. If it’s a self-contained DLL, that’s simply a matter of swapping one DLL out for another. If you take the code and statically link it, it’s not so simple. Then you have two choices:
Your best bet is to just use a DLL.