[FFmpeg-devel] GOM Player on the Blacklisted Projects
Thu Apr 10 01:59:00 CEST 2008
I have good news!
As you might know the Free Software Foundation (FSF) answers questions
about licensing issues related to GPL/LGPL.
There are a few things that need to be straightened out. First on what
ffmpeg asks third-party developers who make their own modifications.
My first impression when reading the things asked by ffmpeg to the
person (Ethan) who had a third-party project was that my understanding
of the GPL/LGPL was probably not complete. I then went back reading
the full text and asked FSF multiple questions and found I had
understood it correctly. You will be interested in the results:
(i) To respect LGPL v2.b (also GPL v2.a), the developper needs only to
state at the top of the modified files the date when he first started
modifications. As everyone agrees a svn revision is recommended (but
unfortunately not sufficient (as Diego had foreseen) since according
to FSF not everyone has source control access). Anyway the FSF
requires just a copyright notice with the year and month on each
modified file (I was surprised they don't insists on the day). And for
subsequent changes on the same file, no additional dates are required
(that was the main gray area I needed to clarify). If someone would be
bothered about listing every change on a file, releasing under GPL v3
would clearly allow him just to produce a single date.
(ii) When I read that ffmpeg ask a svn revision and also requires a
diff, I asked myself to what part of the GPL does the diff requirement
comes from? The answer is none. While it helps developers, it's not a
license issue at all. Nowhere in a FSF license it is required to
produce a diff, to describe or explain the modifications done.
Below are the specific questions/answer asked to FSF:
> Q. What ffmpeg requires is that the new developer mention on which svn
> revision he branched the original tree (to comply apparently with GPL
> ?!? is this true?), and secondly, to produce a diff of its change (to
> comply with 2.a).
(FSF) << No, the requirement is that I (as an example of "any third party"),
should be able to acquire, from the new developer, the corresponding
source to build the same binary which the new developer is distributing. >>
> Q. When a new developer branches a GPL project into a new GPL project.
> Is he required to list all the date of all changes on every files part
> of the original GPL code that he himself modified after the branching ?
(FSF) << Generally speaking, yes, but this should not be done in an overly
cumbersome way. Note that if it would be too cumbersome to comply with
this term, then you would lose the freedom to modify the software.
To be more specific, you need to add a notice such as:
"This file was modified by YOUR NAME in April 2008" or even more tersely
just "Copyright 2008 YOUR NAME", stating when you first changed the
file. Anything else, including the dates of subsequent changes and their
description might be nice, but is not a requirement of the GPL.
Section 5(a) of GPLv3 states:
"The work must carry prominent notices stating that you modified it, and
giving a relevant date."
The FSF feels that this better reflects the meaning of the language
GPLv2 as well (one of the reasons GPLv3 is a better license is that many
of these issues have been cleared up considerably).
> > Changes made:
> > Original source:
> > libavcodec version 51.40.4
> > libavutil version 49.4.0
> That's a good start, but not very precise. A sufficiently precise
> answer would be the Subversion revision number you based your work on.
> > Changes:
> > libavcodec ported to win32 dll using MinGW
> That's also a good start, but not precise enough. A sufficiently
> precise answer would be a diff file with your changes.
As a reminder, it's might be ok to ask to produce svn revision in
order to comply with GPL v2 section 2.b however to ask to produce a
diff (to someone who has already produced the full source code) and
ask it in a way that it is to comply with GPL/LGPL is not right. There
might be people reading ffmpeg-devel posts in order to educate
themselves on licensing issues (in order to not be on the blacklisted
projects) and care should be taken not to bring misconception about
GPL. I would say it's as bad as breaching a license to require
something on the behalf of a license that the license itself doesn't
P.S. There were other questions asked which are a bit off-topic but
could be of interest.
> > Does having the new project in
> > source control (Subversion/SVN), which logs all diff and date of
> > modification on which file, is enough to comply with 2.a, even thought
> > the modifications are not written in the very source file.
> (FSF) No, since not everyone has source control tools at their disposal. You
> need to state that you changed the files in the files themselves.
> The goal is to make the lineage of the code clear to any third party as
> files move from one project to another. As each project might have their
> own, different methods of maintaining code history (CVS, mailing lists,
> flat files, etc.), always keeping the information in the file itself
> achieves this goal across projects.
> > (iii) I have a problem with 2.a being that I want to keep my code
> > clean, and I make modifications almost every 2 days.
> If numerous revision control patches/pushes/merges are made in order to
> make a particular change in the file, you can write that as a single
> change, with a corresponding single date.
> (FSF) The point is to clearly communicate the fact that you changed the file,
> not to document every time you added a missing semicolon.
> > Now I understand if I'm the original creator of the file (that I
> > release under GPL), I do not need to list all the modifications I do
> > on my own files (is this correct) ?
> (FSF) Yes, that is correct.
> > From reading the GPL license, I would presume I have to list
> > the modifications even though I'm the original creator.
> (FSF) No, the GPL permits you to modify and distribute a work under copyright,
> and with your own work, you don't need any such permission.
> > But in reality I see almost no one doing this. The only time I see
> > this is when CVS is used which includes comment in the file
> > header. With users of SVN, I only see comments about modifications in
> > the repository, and almost never in the file itself. Then it's a
> > breach of GPL v2 ?
> (FSF) No, if you are the copyright holder of the work in question, you cannot
> be in breach of your own license, regardless.
> > (iv) Is there any part of GPL v2. that requires to list the date on
> > which the GPL software was branched (that is, to identify the starting
> > point) ?
> (FSF) No, GPLv2 does not speak of "branching", just modification.
More information about the ffmpeg-devel