<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Le 9 juin 2011 à 16:28, Soltic Lucas a écrit :</div><blockquote type="cite"><div><blockquote type="cite">It *sounds* like you are complying with the license.  But I have not seen your application code, and I am not a lawyer.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Phil<br></blockquote><br>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.<br><br>Lucas Soltic<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>Hello,</div><div><br></div><div>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).</div><div><br></div><div><div><i>  6. As an exception to the Sections above, you may also combine or</i></div><div><i>link a "work that uses the Library" with the Library to produce a</i></div><div><i>work containing portions of the Library, [...]</i></div><div><i><br></i></div><div><i>[...]  Also, you must do one</i></div><div><i>of these things:</i></div><div><i><br></i></div><div><i>    a) Accompany the work with the complete corresponding</i></div><div><i>    machine-readable source code for the Library including whatever</i></div><div><i>    changes were used in the work (which must be distributed under</i></div><div><i>    Sections 1 and 2 above); and, if the work is an executable [...]</i></div><div><i><br></i></div><div><i>    b) Use a suitable shared library mechanism for linking with the</i></div><div><i>    Library.  A suitable mechanism is one that (1) uses at run time a</i></div><div><i>    copy of the library already present on the user's computer system,</i></div><div><i>    rather than copying library functions into the executable, and (2)</i></div><div><i>    will operate properly with a modified version of the library, if</i></div><div><i>    the user installs one, as long as the modified version is</i></div><div><i>    interface-compatible with the version that the work was made with.</i></div><div><i><br></i></div><div><i>    c) Accompany the work with a written offer, valid for at</i></div><div><i>    least three years, to give the same user the materials</i></div><div><i>    specified in Subsection 6a, above, for a charge no more</i></div><div><i>    than the cost of performing this distribution.</i></div><div><i><br></i></div><div><i>    d) If distribution of the work is made by offering access to copy</i></div><div><i>    from a designated place, offer equivalent access to copy the above</i></div><div><i>    specified materials from the same place.</i></div><div><i><br></i></div><div><i>    e) Verify that the user has already received a copy of these</i></div><div><i>    materials or that you have already sent this user a copy.</i></div><div><br></div><div><br></div><div>Option b) is dynamic linking, which is not what I wish.</div><div>Option c) is more or less like option a). Same for option d) and e).</div><div>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.</div><div><br></div><div><br></div><div>However, LGPLv3 states the following:</div><div><br></div><div><div><i>  0. Additional Definitions.</i></div><div><i><br></i></div><div><i>[...]</i></div><div><i><br></i></div><div><i>  An "Application" is any work that makes use of an interface provided</i></div><div><i>by the Library, but which is not otherwise based on the Library.</i></div><div><i>Defining a subclass of a class defined by the Library is deemed a mode</i></div><div><i>of using an interface provided by the Library.</i></div><div><i><br></i></div><div><i>  A "Combined Work" is a work produced by combining or linking an</i></div><div><i>Application with the Library.  The particular version of the Library</i></div><div><i>with which the Combined Work was made is also called the "Linked</i></div><div><i>Version".</i></div><div><i><br></i></div><div><i>[...]</i></div><div><i><br></i></div><div><div><i>  4. Combined Works.</i></div><div><i><br></i></div><div><i>  You may convey a Combined Work [...], if you also do each of</i></div><div><i>the following:</i></div><div><i><br></i></div><div><i>   a) [...]</i></div><div><i><br></i></div><div><i>   d) Do one of the following:</i></div><div><i><br></i></div><div><i>       0) Convey the Minimal Corresponding Source under the terms of this</i></div><div><i>       License, and the Corresponding Application Code in a form</i></div><div><i>       suitable for, and under terms that permit, the user to</i></div><div><i>       recombine or relink the Application with a modified version of</i></div><div><i>       the Linked Version to produce a modified Combined Work, in the</i></div><div><i>       manner specified by section 6 of the GNU GPL for conveying</i></div><div><i>       Corresponding Source.</i></div><div><i><br></i></div><div><i>       1) Use a suitable shared library mechanism for linking with the</i></div><div><i>       Library.  A suitable mechanism is one that (a) uses at run time</i></div><div><i>       a copy of the Library already present on the user's computer</i></div><div><i>       system, and (b) will operate properly with a modified version</i></div><div><i>       of the Library that is interface-compatible with the Linked</i></div><div><i>       Version.</i></div><div><i><br></i></div><div><i>   e) [...]</i></div><div><br></div><div><br></div><div>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.</div><div><br></div><div>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).</div><div><br></div><div>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.</div><div><br></div><div>Lucas Soltic</div><div><br></div><div><br></div><div>P.S.: for those who are interested in the library aggregation issue (putting every FFmpeg libraries into one library), section 5 of LGPLv3 explains this point.</div></div></div></div></body></html>