views:

399

answers:

5

Hi

I'm making an LGPL distribution of FFmpeg.

I'm going to distribute the executable with a zip containing the full source code of FFmpeg that I used when compiling the executable. some files in the FFmpeg source code are under a GPL license, can and/or should I include these files in the zip? (just to be clear, my executable is not compiled with the 'use GPL code' option.)

A: 

If the GPLed files are included in the build, or linked in, then the whole thing is GPL, not LGPL. You can't change the license, and you can't use GPLed files in a build without releasing the resulting binary and source under the GPL. (You can license your own source files under more permissive licenses, if you want.)

Therefore, the whole distribution would be under the GPL unless you either replace the GPLed portions or get permission from the copyright owners to distribute under the LGPL, which is worth asking about.

You don't need to provide the source used to compile in the distribution, but if you don't you need to satisfy one of the other ways. One is to make sure the source is available along with the binary, and one is to provide a written offer to provide the source for a nominal fee for at least three years after you distribute. Your choice; you don't need to do more than one of these. However, all the source must be in the source distribution.

I have no idea what you mean by a "compile with GPL code" option.

David Thornley
ffmpeg comes with a file called 'configure' that you use to configure the ffmpeg build. you must call it with the argument "--enable-gpl" to include the GPL files of the source in the build, if you don't pass that argument the resulting build is LGPL. my question is if i need to delete all GPL files from the source. all the GPL files still have their GPL header intact. i'm sorry if i was vague.
Fred
to be clear: the GPL files are not included in the build.http://ffmpeg.arrozcru.org/builds/this guy supplys the same source zip (search for 'FFmpeg Revision 10461') for both a lgpl and a gpl binary distribution. so if he's doing it right i should build a lgpl binary and ship it with untouched source containing GPL files. can any of you two comment on that? thanks for both of your time.
Fred
Thank you for clarifying that. In that case, you're fine with using the LGPL. There's no problem with shipping extra source, and it's probably easier to ship the zip file you got, and which you know works. You do need to ship the source you used to compile, and so you'd have to do extra work to ship without the GPLed files.
David Thornley
+1  A: 

I'm not a legal expert.

That said, I think you're in the clear. You're creating a non-GPL program that uses a LGPL library, which is exactly what the LGPL is designed to do.

It doesn't hurt to provide GPL source code along with the LGPL source code, since the GPL code isn't actually in your program. Basically, you're just giving someone the source code for an un-related GPL file...which means nothing.

teeks99
A: 

Since it sounds like the ffmpeg folks made explicit provision to allow use of parts of the library under the LGPL, you're in the clear on distribution. You should include the original ZIP file you obtained to fulfill the source code requirement, for two reasons:

  1. You know that the user can unpack it and get a working build of ffmpeg
  2. Users can easily verify that the version of ffmpeg code that you're distributing is unmodified, which is useful for things like relinking to an optimized version, getting support and reporting bugs, and verifying integrity of the archive.
  3. Laziness is a virtue; you would have less work to do when making a distribution.
Novelocrat
A: 

You might have to pay the MPEG patent holders to distribute an implementation of the MPEG system. This is a completely separate issue from the GPL, but very relevant to ffmpeg.

Joe Koberg
+1  A: 

http://ffmpeg.org/legal.html

FFmpeg is already an LGPL distribution, unless you explicitly tell it to use GPL or non-free code. I'm not quite sure what benefit forking would bring. Perhaps a smaller zip file? It does the right thing by default.

Pestilence