So this is an interesting scenario that I’ve recently stumbled upon due to needing a feature in a build manager for shared library dependencies.
A quick rundown for those who are not native programmers.
There are two outputs a compiler can produce that is directly executable, executables and shared libraries. Both of these can be referred to as binary images.
An output that a compiler can produce that is not directly executable is static libraries, these get linked into a binary image.
Now the scenario. ProjectA depends on ProjectB. ProjectB is a library that is compiled as shared library. But it defines a (or set of) file(s) that will be injected into the build process of any code that depends upon it.
ProjectB in their ever-strong desire to be copy-left but friendly for shared library usage, decided to go with LGPL. A license that basically means in context that as long as you state that a dependent library is LGPL, you’re good.
BUT they added that nifty new feature! Injection of source files.
Those source files are also LGPL except, they are being compiled into ProjectA’s binary! Which means that they are actually devolved into GPL, poisoning ProjectA’s license.
Anyway, I thought this was an interesting legal situation that could be ran into.