Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I understand the GPLv3 angle where the violation is clear, but not asking for other source code under LGPL:

> In accordance with the LGPL v2.1, I am requesting a copy of the libgcrypt source code plus the source code of VoiceAILib.dll and of any other components, tools, and/or scripts necessary to reproduce a working executable with my own version of libgcrypt.

I thought the required binaries (needed to re-link, .obj for Windows) could be requested but the source was not required, isn't that the point of LGPL?



The point of LGPL is that it’s less viral than the GPL, specifically for linking. If you link GPL code into your project, the whole project virally becomes GPL; with LGPL, the link is the boundary. You can still request a copy of the source of that library though.


> the whole project virally becomes GPL

It does not. There is no such thing in copyright law as one work changing the license of another work. The idea of "virality" is incorrect.

If an author is violating the GPL by distributing e.g. MIT licensed code that links to GPL code it's up to them to choose between switching the whole work to GPL, or stop distributing it, or keep using MIT and stop including the GPL part.

They can even keep using MIT in libraries that are included in the main project and other combinations.

edit: see @bonzini reply


Yeah, I’m simplifying because the linking part is the bit that’s relevant to this discussion; any other source that isn’t HN comments is a better way to get into the details. The general point stands, which is that GPL considers linking to incorporate the library into the work whereas LGPL says it doesn’t.


> or keep using MIT and stop including the GPL part.

Well, in this case it appears that they're violating the license of the permissively licensed code, which still requires attribution. Points for uniformity, I guess...


To be pedantic, if you're mixing your code with GPL code and distributing the result then you're obligated to make it all GPL in order to follow the license, but it does not by itself become GPL.


More precisely you can make it any license that is GPL-compatible (including MIT), and distribute the source in order to follow the license. But it's okay for people to strip the GPL bits and only follow the permissive license on the rest.

This has been done for QEMU in the past, for example (QEMU for historical reasons is a mishmash of GPLv2-compatible licenses, which is fine as long as the combination is distributed under the rules of GPLv2).


Separately (really stretching the edges of my understanding here as I have not kept up with any court cases, settlements, or other ways this has come up and been resolved), it's my understanding that the nature of dynamic linking in Windows DLLs is seen by some as a proper boundary against the full GPL, such that only an affected DLL would require its entire source code available rather than the entire program. I believe the justification in such a case is that the DLL is serving it's intended/entire purpose and could be replaced.

I'm far from an expert but thought this was an interesting technical issue affecting open source licensing (perhaps similar to closed-source kernel drivers?). If anyone has recent experience sorting this out "in the real world" (amicably or not!) I'd love to hear about it.


Thanks for the clarification.

The wording in the original article seemed to imply turning over the source was required by the LGPL, but if I understand what you're saying (You can still request a copy of the source of that library though) it should be more of a "pretty please, if you're feeling generous".


IANAL but AFAIK, the license absolutely does require them to provide the source code for any LGPL libraries that they used. It does not affect/infect their other source code, as would be the case with the full GPL. However, voice.ai was foolish enough to include a GPLv3 component in their product, so all of their source code arguably has been affected by its terms.


They statically linked in LGPL code which makes it a difference case although.

From a quick google they have to release the code under a compatible license or provide a way to relink with with the LGPL code.

If they had dynamically linked they would have been fine.

The GPL code they statically linked in… they’re just screwed.


Yes, thanks!

The piece I didn't understand (under LGPL) was "source code of VoiceAILib.dll".


The user has to be given a practical way to change the LGPLed code in any way he wants.

They have to provide a way to rebuild VoiceAILib.dll with a modified version of LGPLed library, or just link the LGPL licensed library into it's own dll and don't bundle it with their own code into the same dll.

Providing the full source code for the whole dll is also a way to satisfy the LGPL's license requirements, of course.


No that is incorrect.


For the LGPL portion, it was linked statically, so they need to at minimum release enough of the code so that the LGPL portion can be relinked. This would not be an issue if it was linked dynamically. If they modified the LGPL portion they also need to make those modifications available to whoever they provided the binary to.

For the GPL portion they need to release the code for the whole binary.


AFAIK the point of the LGPL is that the LGPL license parts must be replaceable with a user-modified version. The easiest way to achieve that is through dynamic linking, but it's not the only way. They could release object files of their library and the LGPL licensed parts, document how to replace the object files of the LGPL licensed parts if you wish to do so, and how to link the whole thing into a dynamic library.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: