[Libav-user] Question about the libraries' naming and rule #16
soltic.lucas at gmail.com
Thu Jun 30 20:36:45 CEST 2011
Le 30 juin 2011 à 20:27, Phil Turmel a écrit :
> Hi Lucas,
> On 06/30/2011 01:41 PM, Soltic Lucas wrote:
>> Le 9 juin 2011 à 16:28, Soltic Lucas a écrit :
>>>> It *sounds* like you are complying with the license. But I have not seen your application code, and I am not a lawyer.
>>> Thank you all for you answers. And I'll take your advice Phil and I'll entirely read the LGPL, so that I can be sure that everything I'm doing is ok.
>>> Lucas Soltic
>> I've finally read LGPLv2.1 and here is what I've found (remember that the purpose is to build an open source library statically linked against FFmpeg).
>> 6. As an exception to the Sections above, you may also combine or
>> link a "work that uses the Library" with the Library to produce a
>> work containing portions of the Library, [...]
>> [...] Also, you must do one
>> of these things:
>> a) Accompany the work with the complete corresponding
>> machine-readable source code for the Library including whatever
>> changes were used in the work (which must be distributed under
>> Sections 1 and 2 above); and, if the work is an executable [...]
>> b) Use a suitable shared library mechanism for linking with the
>> Library. A suitable mechanism is one that (1) uses at run time a
>> copy of the library already present on the user's computer system,
>> rather than copying library functions into the executable, and (2)
>> will operate properly with a modified version of the library, if
>> the user installs one, as long as the modified version is
>> interface-compatible with the version that the work was made with.
>> c) Accompany the work with a written offer, valid for at
>> least three years, to give the same user the materials
>> specified in Subsection 6a, above, for a charge no more
>> than the cost of performing this distribution.
>> d) If distribution of the work is made by offering access to copy
>> from a designated place, offer equivalent access to copy the above
>> specified materials from the same place.
>> e) Verify that the user has already received a copy of these
>> materials or that you have already sent this user a copy.
>> Option b) is dynamic linking, which is not what I wish.
>> Option c) is more or less like option a). Same for option d) and e).
>> Thus what I would be interested in is option a). BUT it states I should distribute the machine-readable source code (which is, from what I understand, the object code; using "source code" here is weird to me). But distributing FFmpeg's object code falls under all of the patents issues, thus I cannot comply with these terms.
> No, "machine-readable" merely means an electronic copy of the source code, such that it is conveniently editable, as opposed to a paper printout of the source code, which would have to be typed or scanned back in.
> I don't see why you can't comply with (a), as long as your customers can relink everything with the materials you've provided.
> As to the patent issues... If you can't distribute FFmpeg's object codes due to patent restrictions, then you can't distribute your library statically linked to those codes, for the same reason. If you haven't made your own arrangements to keep the patent lawyers happy, then (b), and dynamically linking to default system copies of FFmpeg, may be your only choice.
> IANAL, yada, yada...
>> Option 0) states that I must distribute the source code of FFmpeg (and not the object code) in a way suitable for rebuilding my library with a modified version of FFmpeg. Which I do.
> v3's verbage is clearer, but essentially the same on this point.
>> Therefore it appears I can indeed statically link FFmpeg against my own library under the terms of LGPLv3 but not under the terms of LGPLv2.1 (according to my understanding of this LGPL version).
> I don't think these two versions differ on this point.
>> I'm still open to any comment but I think I've found the answer to my question :) . I just have to switch to LGPLv3 instead of v2.1.
>> Lucas Soltic
Oh ok thanks, LGPLv3 is indeed clearer (I didn't even think of a non-electronic version of my source code...). Thus.. any version is fine :) .
As for the patents issues, I had already been digging through this and the conclusion was that I could freely distribute my library as a source code (providing everything to build it easily) but not provide the compiled decoders. And that's what I'm doing. Actually I do provide a binary version of my library but it only includes the free decoders.
My build system lets the user choose which decoder should be enabled in the final library (mine), thus if he doesn't want to pay royalties, he doesn't have to, but if he wants to support patented decoders, he can too.
More information about the Libav-user