5 ms·
Warning: LGPL license
by meisel 6y ago
Warning: LGPL license
- ncmncm 6y ago... which, being a header-only library, happens to place no restrictions or requirements of any kind on the calling program.
- detaro 6y agoI don't think it's that easy? LGPLv3 has an explicit carve-out for headers which makes that scenario easy, but this is 2.1...
- loa_in_ 6y agoParagraph 5 of the LGPL version 2.1 states: A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
- meisel 6y agoIn that case, if header-only is outside the scope of the license, it begs the question why they would pick that license in the first place. But anyways, it doesn't seem clear from the passage how headers fit in, considering that these headers are not just APIs, they contain the implementation themselves.
- kbumsik 6y agoIn this case I interpret LGPL as "Please don't maintain your own fork (with bugfixs) in your company internally, contribute to my repo directly", which make sense.
- DTolm 6y agoThis was indeed what I was thinking in the first place, when I made VkFFT - your project doesn't have to be open-source, but please share your modifications to VkFFT. I think about switching it to MPL 2.0, is this one better for everybody?
- ncmncm 6y agoYour code, your license. Nobody else has earned a say. Ask anybody who actually contributes, usefully, what they think. Their opinion might mean something.
- Reelin 6y agoYes, I believe the MPL fits the usecase you describe. As far as I understand it, proprietary code using an LGPL licensed library is more or less incompatible with templates in header files (!!!) since there's no way (AFAIK?) to relink against a modified version without providing your full source code. Supposedly the LGPLv3 provides an exception for header files but personally I wouldn't go anywhere near it because it seems quite vague - "small" macros, templates that are less than 10 lines (what constitutes a line?) etc. So as currently licensed (LGPL), I don't think your library is usable as part of a proprietary project. The MPL, in contrast, places no relinking requirements on the developer. You only have to share any changes you happen to make to the MPL licensed code.
- ncmncm 6y agoIt doesn't "beg the question" (that being the name of a logical fallacy), but does invite it. Sometimes LGPL is chosen out of confusion, sometimes symbolically. Whatever the legal demands it does not impose, it would be rude not to honor its intent.
- andi999 6y agoBecause they do not know, and are domain experts, not licence experts: like probably almost everybody else here.
- pabs3 6y agoThe program seems like it would contain inlined code from the header though right?
- fulafel 6y agoDoesn't this mean there is no permission to use it, as that's the default situation?
- ncmncm 6y agoNo, because it says you may re-publish provided that you abide by the following: [nothing].
- Reelin 6y agoI think there's a misunderstanding here. By falling outside the scope of the license, the LGPL isn't viral in the way the GPL is. Code you write can use an LGPL licensed library but be licensed differently itself. However, you (the developer) are still subject to various legal requirements if you make use of an LGPL licensed library! If you fail to meet those requirements (basically, allow relinking against a modified version of the library) then you are in violation of the license and (in most jurisdictions) subject to penalty under copyright law.
- detaro 6y agocontinuing: > However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. That certainly does have consequences for what you can do with the software - the object code of your compiled program will include parts of the library.