[Libav-user] Question about the libraries' naming and rule #16

Soltic Lucas soltic.lucas at gmail.com
Thu Jun 30 19:41:40 CEST 2011


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.
>> 
>> Phil
> 
> 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

Hello,

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.


However, LGPLv3 states the following:

  0. Additional Definitions.

[...]

  An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.

  A "Combined Work" is a work produced by combining or linking an
Application with the Library.  The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".

[...]

  4. Combined Works.

  You may convey a Combined Work [...], if you also do each of
the following:

   a) [...]

   d) Do one of the following:

       0) Convey the Minimal Corresponding Source under the terms of this
       License, and the Corresponding Application Code in a form
       suitable for, and under terms that permit, the user to
       recombine or relink the Application with a modified version of
       the Linked Version to produce a modified Combined Work, in the
       manner specified by section 6 of the GNU GPL for conveying
       Corresponding Source.

       1) Use a suitable shared library mechanism for linking with the
       Library.  A suitable mechanism is one that (a) uses at run time
       a copy of the Library already present on the user's computer
       system, and (b) will operate properly with a modified version
       of the Library that is interface-compatible with the Linked
       Version.

   e) [...]


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.

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'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


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20110630/690dd430/attachment.html>


More information about the Libav-user mailing list